Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP多维数组-提取孩子/家长_Php_Arrays_Parsing - Fatal编程技术网

PHP多维数组-提取孩子/家长

PHP多维数组-提取孩子/家长,php,arrays,parsing,Php,Arrays,Parsing,我试图解析一个多维数组,如下所示: 例如,我想提取NAME=>Ma的所有子项的名称,并再次提取它们的所有子项 Array ( [0] => Array ( [ID] => 35 [Name] => Ma [Note] => [parent_id] => 0 [children] => Array ( [0] =>

我试图解析一个多维数组,如下所示: 例如,我想提取NAME=>Ma的所有子项的名称,并再次提取它们的所有子项

Array
(
[0] => Array
    (
        [ID] => 35
        [Name] => Ma
        [Note] => 
        [parent_id] => 0
        [children] => Array
            (
                [0] => Array
                    (
                        [ID] => 55
                        [Name] => OS
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 416
                                        [Name] => fs
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [1] => Array
                                    (
                                        [ID] => 921
                                        [Name] => fd
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [2] => Array
                                    (
                                        [ID] => 980
                                        [Name] => FP
                                        [Note] => 
                                        [parent_id] => 55
                                        [DomainID] => 1
                                        [children] => Array
                                            (
                                            )

                                    )

                                    )

                            )
                    )

                [1] => Array
                    (
                        [ID] => 59
                        [Name] => PC
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 60
                                        [Name] => IT
                                        [Note] => 
                                        [parent_id] => 59
                                        [children] => Array
                                            (
                                            )

                                    )
阵列一直这样运行。更多的父母,更多的孩子。。。。 我试图提取的唯一数据是名称,但我需要以这样一种方式获取它们,即我知道它们属于哪一个父级

Array
(
[0] => Array
    (
        [ID] => 35
        [Name] => Ma
        [Note] => 
        [parent_id] => 0
        [children] => Array
            (
                [0] => Array
                    (
                        [ID] => 55
                        [Name] => OS
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 416
                                        [Name] => fs
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [1] => Array
                                    (
                                        [ID] => 921
                                        [Name] => fd
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [2] => Array
                                    (
                                        [ID] => 980
                                        [Name] => FP
                                        [Note] => 
                                        [parent_id] => 55
                                        [DomainID] => 1
                                        [children] => Array
                                            (
                                            )

                                    )

                                    )

                            )
                    )

                [1] => Array
                    (
                        [ID] => 59
                        [Name] => PC
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 60
                                        [Name] => IT
                                        [Note] => 
                                        [parent_id] => 59
                                        [children] => Array
                                            (
                                            )

                                    )
foreach($outArray as $row => $innerArray){
foreach($innerArray as $innerRow => $value){
echo $value . "<br/>";
foreach($outArray作为$row=>$innerArray){
foreach($innerArray作为$innerRow=>$value){
回显$value.“
”;

有一种方法我试图提取数据,但没有得到任何子项。

php中有一个名为
array\u walk\u recursive
的函数可以处理这个问题。您可以使用它。我已经为您准备了一个示例代码。请参见以下内容:

Array
(
[0] => Array
    (
        [ID] => 35
        [Name] => Ma
        [Note] => 
        [parent_id] => 0
        [children] => Array
            (
                [0] => Array
                    (
                        [ID] => 55
                        [Name] => OS
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 416
                                        [Name] => fs
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [1] => Array
                                    (
                                        [ID] => 921
                                        [Name] => fd
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [2] => Array
                                    (
                                        [ID] => 980
                                        [Name] => FP
                                        [Note] => 
                                        [parent_id] => 55
                                        [DomainID] => 1
                                        [children] => Array
                                            (
                                            )

                                    )

                                    )

                            )
                    )

                [1] => Array
                    (
                        [ID] => 59
                        [Name] => PC
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 60
                                        [Name] => IT
                                        [Note] => 
                                        [parent_id] => 59
                                        [children] => Array
                                            (
                                            )

                                    )
$results = array();

array_walk_recursive($array, function ($item, $key) use (&$results){
    if ($key == 'Name') {
        $results[] = $item;
    }
});

var_dump($results);
上面的代码将输出数组中所有“Name”键的值

Array
(
[0] => Array
    (
        [ID] => 35
        [Name] => Ma
        [Note] => 
        [parent_id] => 0
        [children] => Array
            (
                [0] => Array
                    (
                        [ID] => 55
                        [Name] => OS
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 416
                                        [Name] => fs
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [1] => Array
                                    (
                                        [ID] => 921
                                        [Name] => fd
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [2] => Array
                                    (
                                        [ID] => 980
                                        [Name] => FP
                                        [Note] => 
                                        [parent_id] => 55
                                        [DomainID] => 1
                                        [children] => Array
                                            (
                                            )

                                    )

                                    )

                            )
                    )

                [1] => Array
                    (
                        [ID] => 59
                        [Name] => PC
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 60
                                        [Name] => IT
                                        [Note] => 
                                        [parent_id] => 59
                                        [children] => Array
                                            (
                                            )

                                    )
请告诉我这是否是您所期望的。您可以在
array\u walk\u recursive

Array
(
[0] => Array
    (
        [ID] => 35
        [Name] => Ma
        [Note] => 
        [parent_id] => 0
        [children] => Array
            (
                [0] => Array
                    (
                        [ID] => 55
                        [Name] => OS
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 416
                                        [Name] => fs
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [1] => Array
                                    (
                                        [ID] => 921
                                        [Name] => fd
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [2] => Array
                                    (
                                        [ID] => 980
                                        [Name] => FP
                                        [Note] => 
                                        [parent_id] => 55
                                        [DomainID] => 1
                                        [children] => Array
                                            (
                                            )

                                    )

                                    )

                            )
                    )

                [1] => Array
                    (
                        [ID] => 59
                        [Name] => PC
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 60
                                        [Name] => IT
                                        [Note] => 
                                        [parent_id] => 59
                                        [children] => Array
                                            (
                                            )

                                    )

希望这有帮助。

您到底是如何尝试的,您的代码是什么样子的,以及它如何不做您需要它做的事情?请发布您的代码,我们可以帮助您。@jeroen我尝试过像这样运行foreach循环:foreach($outArray as$row=>$innerray){foreach($innerray as$innerRow=>$value){echo$value。“
”;这很好,但是我如何才能只调用[Name]=>Ma的孩子呢?我已经为您提供了一个基线。请随意修改代码。
Array
(
[0] => Array
    (
        [ID] => 35
        [Name] => Ma
        [Note] => 
        [parent_id] => 0
        [children] => Array
            (
                [0] => Array
                    (
                        [ID] => 55
                        [Name] => OS
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 416
                                        [Name] => fs
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [1] => Array
                                    (
                                        [ID] => 921
                                        [Name] => fd
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [2] => Array
                                    (
                                        [ID] => 980
                                        [Name] => FP
                                        [Note] => 
                                        [parent_id] => 55
                                        [DomainID] => 1
                                        [children] => Array
                                            (
                                            )

                                    )

                                    )

                            )
                    )

                [1] => Array
                    (
                        [ID] => 59
                        [Name] => PC
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 60
                                        [Name] => IT
                                        [Note] => 
                                        [parent_id] => 59
                                        [children] => Array
                                            (
                                            )

                                    )