已知一个多维数组 arr, 以及一个另一个数组 key = [1,2], 其中key中的第一个元素代表arr数组的第一个纬度, 第二个元素代表arr 的第二个纬度, 以此类推, key的元素个数不确定, 该如何获取arr 对应的key列出的所对应的值,
比如上面的key = 1, 2], 我就要获取arr[1, 如何key = 1,2,4], 我要获取arr[1[4]....
已知一个多维数组 arr, 以及一个另一个数组 key = [1,2], 其中key中的第一个元素代表arr数组的第一个纬度, 第二个元素代表arr 的第二个纬度, 以此类推, key的元素个数不确定, 该如何获取arr 对应的key列出的所对应的值,
比如上面的key = 1, 2], 我就要获取arr[1, 如何key = 1,2,4], 我要获取arr[1[4]....
<code class="php"><?php $arr = [ [ "value" => "0", "children" => [ [ "value" => "0-0", ], [ "value" => "0-1", "children" => [ [ "value" => "0-1-0", ], ] ], ] ], [ "value" => "1", "children" => [ [ "value" => "1-0", "children" => [ [ "value" => "1-0-0", "children" => [ [ "value" => "1-0-0-0", "children" => [] ], ] ], ] ], ] ] ]; $key = [0, 1]; function getValueByKey($arr, $key) { $index = array_shift($key); if(count($key) === 0) return $arr[$index]; return getValueByKey($arr[$index]['children'], $key); } // 更改對應索引的 value function setValueByKey(&$arr, $key, $value) { $index = array_shift($key); if(count($key) === 0) return $arr[$index]['value'] = $value; return setValueByKey($arr[$index]['children'], $key, $value); } setValueByKey($arr, $key, '123'); // 返回匹配到的數組,再看要取出啥,這邊 value 為例 print_r(getValueByKey($arr, $key)['value']); </code>