获取n级多维数组PHP中的键值

时间:2019-02-01 05:58:25

标签: php arrays sorting

我有一个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值。

1 个答案:

答案 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)
  }