PHP多维数组键成一个单独的数组?

had*_*ley 2 php arrays key

我在PHP中有一个多维的数组.它可以动态生成任意数量的级别.数组中包含的任何数组都不为空,并且都设置了键.

我正在寻找一种方法将所有数组键放入一个新的数组.我知道如何在单个分层阵列上进行,但是因为我不知道阵列的深度有多少,它可能是一个单独的分层数组本身还是一个20级多维数组?

谢谢...

Has*_*san 7

对于这个特定的应用程序,我会使用类而不是数组.我之所以这样说是因为你可以在类中使用递归函数来访问它,因此处理多个级别会更容易.这是我正在谈论的一般例子:

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()(或类似的)来访问元素.顺便说一句,我还没有尝试过这段代码,我只是写了它来说明一点.我打赌你可以让它工作!