我在PHP中有一个多维的数组.它可以动态生成任意数量的级别.数组中包含的任何数组都不为空,并且都设置了键.
我正在寻找一种方法将所有数组键放入一个新的数组.我知道如何在单个分层阵列上进行,但是因为我不知道阵列的深度有多少,它可能是一个单独的分层数组本身还是一个20级多维数组?
谢谢...
对于这个特定的应用程序,我会使用类而不是数组.我之所以这样说是因为你可以在类中使用递归函数来访问它,因此处理多个级别会更容易.这是我正在谈论的一般例子:
class Node {
public $children = array();
public $key;
public function get_element_by_key($search_key){
if($this->key == $search_key) return $this;
foreach ($this->children as &$child) {
if($child->get_element_by_key($search_key) != NULL){
return $child;
}
else return NULL;
}
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以添加添加元素的函数,创建元素的构造函数以及添加到父元素等等.然后你使用函数get_element_by_key()(或类似的)来访问元素.顺便说一句,我还没有尝试过这段代码,我只是写了它来说明一点.我打赌你可以让它工作!