atp*_*atp 1 php recursion multidimensional-array
我有一个像这样的PHP数组(没有语法):
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
)
)
Run Code Online (Sandbox Code Playgroud)
'wantedkey'如果我正在使用,那么仅使用键的元素打印值的最佳方法是array_walk_recursive什么?
谢谢!
不会像这样的工作吗?
function test_print($item, $key) {
if ($key === 'wantedkey') {
print $item;
}
}
array_walk_recursive($myarray, 'test_print');
Run Code Online (Sandbox Code Playgroud)
或者我错过了你的要求?[我想我是]
因此,我能够处理您正在寻找的东西的最佳方式是:
function inner_walk ($item, $key) {
if ($key === 'wantedkey2') {
print $item;
}
}
function outer_walk ($item, $key) {
if (($key === 'wantedkey1') && (is_array($item)) {
array_walk($item,'inner_walk');
}
}
array_walk($myarray,'outer_walk');
Run Code Online (Sandbox Code Playgroud)
问题array_walk_recursive是它实际上并没有告诉你你在数组中的位置.理论上你可以应用与array_walk_recursive上面类似的东西,但由于你只提供了一个二维数组,使用array_walk应该可以正常工作.