我有一个n深度的数组。 我已经尝试过了,但是对我不起作用。
array_walk_recursive($old_value, function($v, $k, $u) use (&$values){
if($k == "tour_id") {
$values[] = $v;
}
}, $values );
这是我的数组:
array(
"ID" => 1,
"settings" => array("key" => 1,"scrum" => array("last_key" =>1, "past_key" => 12) )
)
如何有效获取past_key值。
答案 0 :(得分:1)
您快到了,但是正在寻找错误的钥匙。传递给array_walk_recursive的第三个参数也作为第三个参数传递给回调(您不需要此参数,但是我在下面添加了示例用法)。
<?php
$input = array(
"ID" => 1,
"settings" => array("key" => 1,"scrum" => array("last_key" =>1, "past_key" => 12) )
);
array_walk_recursive($input, function($v, $k, $needle_key) use (&$values){
if($k == $needle_key) {
$values[] = $v;
}
}, 'past_key');
var_dump($values);
输出:
array(1) {
[0]=>
int(12)
}