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中的目标值?

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题