
本文详解如何用 foreach 等循环结构逐层遍历 php 多维关联数组,并以清晰、分行格式输出键值对,适合初学者快速掌握嵌套遍历逻辑与实际写法。
在 PHP 中处理多维关联数组(如商品分类数据)时,单层 foreach 只能访问第一层键(如 'vegetables'、'fruit'),而无法深入到子数组内部。要完整、结构化地打印所有数据,必须采用嵌套循环——外层遍历主数组,内层遍历每个子数组。
以下是以你提供的 $bazar 数组为例的推荐实现方式(使用 foreach,语义清晰、不易出错):
['potato' => 16, 'cucumber' => 40, 'pumpkin' => 30, 'carrot' => 60],
'fruit' => ['apples' => 150, 'pine-apple' => '50', 'milk' => 100],
'fishes' => ['rui' => 220, 'tuna' => 280, 'shrimp' => 'it is delicious']
];
// 外层:遍历一级分类(如 vegetables、fruit)
foreach ($bazar as $category => $items) {
echo "{$category}:
"; // 打印分类名,加粗增强可读性
// 内层:遍历该分类下的具体条目
foreach ($items as $name => $price) {
echo " • {$name} → {$price}
";
}
echo "
"; // 分类间空行,提升视觉层次
}
?>✅ 输出效果示例:
vegetables:
• potato → 16
• cucumber → 40
• pumpkin → 30
• carrot → 60
fruit:
• apples → 150
• pine-apple → 50
• milk → 100
...
? 注意事项与技巧:
立即学习“PHP免费学习笔记(深入)”;
- 不建议混用 for/while 遍历关联数组——因无固定数字索引,foreach 是最自然、安全的选择;
- 若需兼容更深层嵌套(如三维数组),可封装为递归函数,但本例两层已足够;
- 输出时使用 缩进或 HTML
- /
- 结构,可显著提升可读性(尤其用于网页展示);
- 注意字符串与数字混用(如 '50' 和 100)不会影响遍历,PHP 会自动类型转换显示。
掌握这种“一层一循环”的思维模式,是处理配置数组、API 响应、数据库结果集等真实场景的关键基础。多练习几遍,你就能轻松驾驭任意深度的关联结构。











