PHP如何通过路径数组获取多维数组中指定的子数组或值?
动态获取多维数组指定路径的值的解决方法
要实现通过路径数组动态获取多维数组的对应值,不用静态拼接键名,可以通过逐层遍历路径数组的方式实现:
基础实现代码
$path_array = array( 'first', 'new', 'best'); $multi_data = array( 'first' => array( 'example' => 'good', 'other' => 'well', 'new' => array( 'subset' => 'none', 'best' => 'stackoverflow', ) ) ); // 初始化变量指向原多维数组 $target_value = $multi_data; // 遍历路径数组,逐层深入 foreach ($path_array as $key) { $target_value = $target_value[$key]; } echo $target_value; // 输出:stackoverflow
健壮性优化(处理键不存在的情况)
如果路径数组里的键可能在多维数组中不存在,直接访问会报错,可以增加存在性判断:
$target_value = $multi_data; $valid_path = true; foreach ($path_array as $key) { if (!isset($target_value[$key])) { $valid_path = false; break; } $target_value = $target_value[$key]; } if ($valid_path) { echo $target_value; } else { echo '指定路径不存在'; }
内容的提问来源于stack exchange,提问作者stephan
相关产品推荐
相关产品推荐

