PHP遍历数组有五种方法:一、foreach最常用,自动处理指针,支持键值对;二、for循环适用于纯索引数组;三、while+each已废弃;四、array_walk()执行回调函数;五、for+array_keys()遍历关联数组。

如果您需要在PHP中处理数组数据,但不确定选择哪种遍历方式更合适,则可能是由于不同场景下各方法的性能、可读性或功能特性存在差异。以下是PHP中遍历数组的多种方法及其具体操作步骤:
一、使用foreach语句遍历
foreach是PHP中最常用且语义最清晰的数组遍历方式,专为遍历数组和对象设计,自动处理内部指针,无需手动管理索引,适用于关联数组和索引数组。
1、定义一个索引数组:$arr = [10, 20, 30];
2、使用foreach遍历并输出每个值:foreach ($arr as $value) { echo $value . PHP_EOL; }
立即学习“PHP免费学习笔记(深入)”;
3、若需同时获取键和值,使用foreach ($arr as $key => $value)语法。
二、使用for循环遍历索引数组
for循环适用于已知数组长度且为纯数字索引的数组,通过控制索引变量逐个访问元素,灵活性高但不支持直接遍历关联数组。
1、定义索引数组:$arr = [10, 20, 30];
2、获取数组长度:$len = count($arr);
3、使用for循环从0开始遍历到$len-1:for ($i = 0; $i
三、使用while循环配合each()函数遍历(PHP 7.2+已废弃)
each()函数返回当前数组指针位置的键值对,并将指针前移一位;while循环持续调用until each()返回false,适用于旧版本PHP,但PHP 7.2起已被移除,仅作兼容性了解。
1、重置数组指针:reset($arr);
2、使用while和each组合:while (list($key, $value) = each($arr)) { echo "$key => $value" . PHP_EOL; }
四、使用array_walk()函数遍历
array_walk()用于对数组每个元素应用用户自定义函数,支持传入额外参数,适合需对每个值执行相同逻辑处理的场景,且能保留原始键名。
1、定义回调函数:function print_item($value, $key) { echo "$key => $value" . PHP_EOL; }
2、调用array_walk()遍历关联数组:array_walk($arr, 'print_item');
3、如需传递额外参数,可在第三个参数中传入,回调函数签名需对应增加参数。
五、使用for循环配合array_keys()遍历关联数组
当面对非数字键的关联数组时,array_keys()可提取全部键名生成索引数组,再用for循环遍历键名,从而安全访问对应值,避免因键类型不可控导致的索引错误。
1、定义关联数组:$arr = ['a' => 100, 'b' => 200, 'c' => 300];
2、获取所有键:$keys = array_keys($arr);
3、遍历键数组并访问原数组:for ($i = 0; $i " . $arr[$k] . PHP_EOL; }











