PHP中如何完整打印多维数组的所有维度索引?
如何打印PHP多维数组的完整索引
你的问题出在每层foreach循环只获取了数组的值,没有捕获对应维度的键(索引)。只要在每层循环里同时拿到键和值,就能拼接出完整的索引路径。
修改后的代码如下:
<?php $a= array(); $a[0][0][0] = 0; $a[0][0][1] = 1; $a[0][1][0] = 2; $a[0][1][1] = 3; $a[1][0][0] = 4; $a[1][0][1] = 5; $a[1][1][0] = 6; foreach( $a as $k => $v){ foreach( $v as $k1 => $v1 ){ foreach ($v1 as $k2 => $value){ echo"[$k][$k1][$k2] = $value\n"; } } } ?>
执行这段代码后,输出结果会是:
[0][0][0] = 0 [0][0][1] = 1 [0][1][0] = 2 [0][1][1] = 3 [1][0][0] = 4 [1][0][1] = 5 [1][1][0] = 6
如果以后遇到维度不固定的多维数组,可以用递归函数来处理,适配任意层数的数组:
<?php function printArrayIndexes($arr, $prefix = '') { foreach ($arr as $key => $value) { $currentPath = $prefix . "[$key]"; if (is_array($value)) { printArrayIndexes($value, $currentPath); } else { echo "$currentPath = $value\n"; } } } $a= array(); $a[0][0][0] = 0; $a[0][0][1] = 1; $a[0][1][0] = 2; $a[0][1][1] = 3; $a[1][0][0] = 4; $a[1][0][1] = 5; $a[1][1][0] = 6; printArrayIndexes($a); ?>
内容的提问来源于stack exchange,提问作者MASA49
相关产品推荐
相关产品推荐

