从 php 数组中获取值的递归循环
recursive loop to get values from php array
我搜索一个解决方案以从名为类别的新数组中的所有 [Ancestors]
中获取 [BrowseNodeId]
和 [Name]
的所有值。我认为这一定是一个递归循环,但是如何?
Array (
[BrowseNodeId] => 343505011
[Name] => Kinderzimmer
[Ancestors] => Array (
[BrowseNode] => Array (
[BrowseNodeId] => 3517801
[Name] => Möbel
[Ancestors] => Array (
[BrowseNode] => Array (
[BrowseNodeId] => 3312261
[Name] => Möbel & Wohnaccessoires
[Ancestors] => Array (
[BrowseNode] => Array (
[BrowseNodeId] => 3169011
[Name] => Kategorien
[IsCategoryRoot] => 1
[Ancestors] => Array (
[BrowseNode] => Array (
[BrowseNodeId] => 3167641
[Name] => Küche & Haushalt
)
)
)
)
)
)
)
)
)
尝试这样的事情
function getAllInfo($inputArray, $outputArray = array()) {
$outputArray[] = array(
'BrowseNodeId' => $inputArray['BrowseNodeId'],
'Name' => $inputArray['Name']
);
if(isset($inputArray['Ancestors']['BrowseNode'])) {
return getAllInfo($inputArray['Ancestors']['BrowseNode'], $outputArray);
}
return $outputArray;
}
在此处查看实际效果(使用您提供的测试数组):http://3v4l.org/jd7hY
我搜索一个解决方案以从名为类别的新数组中的所有 [Ancestors]
中获取 [BrowseNodeId]
和 [Name]
的所有值。我认为这一定是一个递归循环,但是如何?
Array (
[BrowseNodeId] => 343505011
[Name] => Kinderzimmer
[Ancestors] => Array (
[BrowseNode] => Array (
[BrowseNodeId] => 3517801
[Name] => Möbel
[Ancestors] => Array (
[BrowseNode] => Array (
[BrowseNodeId] => 3312261
[Name] => Möbel & Wohnaccessoires
[Ancestors] => Array (
[BrowseNode] => Array (
[BrowseNodeId] => 3169011
[Name] => Kategorien
[IsCategoryRoot] => 1
[Ancestors] => Array (
[BrowseNode] => Array (
[BrowseNodeId] => 3167641
[Name] => Küche & Haushalt
)
)
)
)
)
)
)
)
)
尝试这样的事情
function getAllInfo($inputArray, $outputArray = array()) {
$outputArray[] = array(
'BrowseNodeId' => $inputArray['BrowseNodeId'],
'Name' => $inputArray['Name']
);
if(isset($inputArray['Ancestors']['BrowseNode'])) {
return getAllInfo($inputArray['Ancestors']['BrowseNode'], $outputArray);
}
return $outputArray;
}
在此处查看实际效果(使用您提供的测试数组):http://3v4l.org/jd7hY