假设您有一个这样的数组:
array
(
['one'] => array (
['wantedkey'] => 5
['otherkey1'] => 6
['otherkey2'] => 7
)
['two'] => => array (
['otherkey1'] => 5
['otherkey2'] => 6
['wantedkey'] => 7
)
['three'] => => array (
['otherkey1'] => 5
['wantedkey'] => 6
['otherkey2'] => 7
)
)
如果你将这样的东西应用到数组中,你会获得'wantkey'的所有实例:
function test_print($item, $key) {
if ($key === 'wantedkey') {
print $item;
}
}
array_walk_recursive($myarray, 'test_print');
但是array_walk_recursive没有告诉我(afaik)我在数组中的位置....有没有办法跟踪在上面的例子中使用array_walk_recursive找到'wantkey'的位置?
任何提示都非常感谢,提前感谢! :-) 我知道之前有人问过,但我想知道是否有人找到了解决方案......
答案 0 :(得分:1)
如果您需要跟踪元素位置和层次结构,请使用RecursiveArrayIterator。
答案 1 :(得分:0)
凭借递归定义,您可以在任何给定时间确切地知道您在数组中的位置。由于您必须在每次连续调用时提供越来越小的数组,因此您可以根据数组的大小确切地看到您所在的位置。
答案 2 :(得分:0)
好的,RecursiveArrayIterator正如预期的那样工作:-) 可以在这里找到一个工作示例: link Tree recursion