从 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