PHP遍历多维数组需据维度选择方式:已知结构用嵌套foreach最高效;结构不定用递归函数并设深度限制;仅取叶子值用array_walk_recursive。注意引用、键类型及大数组栈溢出风险。

PHP中遍历多维数组,核心是根据维度层数选择合适的循环方式,常用 foreach 配合嵌套或递归处理。
如果明确知道是二维、三维等固定结构,直接用多层 foreach 最清晰高效。
foreach 处理最内层值$key => $value 形式获取,避免只取值丢失结构信息示例(二维):
foreach ($matrix as $rowIndex => $row) {
foreach ($row as $colIndex => $cell) {
echo "[$rowIndex][$colIndex] = $cell\n";
}
}当维度不确定或结构不规则时,写一个递归函数更灵活可靠。
立即学习“PHP免费学习笔记(深入)”;
is_array() 做类型判断,避免对非数组元素调用 foreach
示例(带层级缩进):
PHP商城系统是国内领先商城系统,网店系统,购物系统,网上商城系统,B2C商城系统产品.同时也是一个商业的PHP开发框架。PHP 商城系统由内容、文章、会员、留言、订单、 财务、广告、短消息、数据库管理、营销推广、内置支付管理、商品配送管理、无限级分类、全站搜索等多个功能模块插件组成。在当今瞬机万变的市场环境中,快速高效的IT解决方案是您业务成功的关键。我们PHP商城系统能为您量身打造完全符合需求
0
function traverse($arr, $depth = 0) {
foreach ($arr as $key => $value) {
echo str_repeat(" ", $depth) . "$key => ";
if (is_array($value)) {
echo "\n";
traverse($value, $depth + 1);
} else {
echo "$value\n";
}
}
}如果只需要访问最底层的值(忽略键和层级),内置函数 array_walk_recursive() 是最简方案。
$value, $key, $userdata,第三个可传额外数据示例(收集所有字符串值):
$strings = [];
array_walk_recursive($data, function($v, $k) use (&$strings) {
if (is_string($v)) $strings[] = $v;
});实际写的时候容易踩几个点:
for 和 foreach:多维时 for 需手动计算长度,易出错;优先用 foreach
&$value 修改原数组要小心,可能影响后续遍历foreach 仍按插入顺序,但逻辑上需留意键是否可预期基本上就这些。选哪种方式,主要看你的数组结构是否稳定、要不要保留路径信息、以及是否需要中途干预逻辑。
以上就是多维数组在php中的遍历的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号