• 2
  • 新人请关照

PHP如何“动态”地读取多维数组

<%
//这是一个模拟的多维数组数据
$arr=[
    'a'=>[
        'b'=>[
            'c'=>2
        ]
    ],
    'x'=>['...']
];

//目标是取到$arr['a']['b']['c']的值
//此数组可能是通过一些复杂的业务逻辑得到
$k=['a','b','c'];

//通常要取这个值我能想到的方法是遍历$k,如:
$result=$arr;
foreach($k as $v){
    $result=$result[$v];
}
//不出意外$result的结果应该为2
%>

有没有不用遍历$k的、更优雅的方法通过$k提供的多维键名最终拿到$arr中的目标值?

阅读 298
评论
    2 个回答
      • 8.3k
      $result = array_reduce($k, function ($res, $v) {
        return $res[$v];
      }, $arr);

      其实还是遍历,只是这样写更加简练

        撰写回答

        登录后参与交流、获取后续更新提醒