遍历PHP数组的几种方式

本文介绍了PHP中遍历数组的四种方式:foreach、for、array_map和array_walk。其中,foreach是常用的高效方法,for则相对繁琐。array_map利用匿名函数处理数组元素并返回新数组,能同时处理多个数组但可能造成部分元素未处理。array_walk通过引用传递遍历数组,不返回值,适用于处理一维数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遍历数组是最常见的操作啦。

1. foreach

$arr = ['a', 'b', 'c'];
 
foreach ($arr as $key => $value) {
    $arr[$key] = $value . '_i';
}
 
print_r($arr); // ['a_i', 'b_i', 'c_i'];

2. for

不推荐使用。它的效率比不上foreach。而且写法上比foreach略繁琐。

$arr = ['a', 'b', 'c'];
 
for ($i = 0; $i < count($arr); ++$i) {
    $arr[$i] = $arr[$i] . '_i';
}
 
print_r($arr); // ['a_i', 'b_i', 'c_i'];

3.array_map

使用匿名函数的方式,处理数组里的每个元素。遍历完成后返回一个新的数组

<?php

$arr = ['a', 'b', 'c'];
 
$arr = array_map(function ($item) {
    return $item . '_map';
}, $arr);
 
print_r($arr); // ['a_map', 'b_map', 'c_map'];

你可以同时处理多个数组

<?php
$arr_1 = ['a', 'b', 'c'];
$arr_2 = ['A', 'B', 'C', 'D', 'E'];
// $arr_n = [...];
 
$arr = array_map(function ($item_1, $item_2) {
    return $item_1 . '_' . $item_2 . '_';
}, $arr_1, $arr_2);
 
print_r($arr); // ['a_A_', 'b_B_', 'c_C_', '_D_', '_E_']

是的,遍历的次数以最长的数组为准。
遍历3次之后,$arr_1 其实是完成了的,所以之后 $item_1 的值都是null

4.array_walk

以引用传递的形式遍历你的数组,没有返回值,而且只能处理一个数组。

<?php

$arr = ['a', 'b', 'c'];
 
array_walk($arr, function (&$item) {
    $item = $item . '_i';
});
 
print_r($arr); // ['a_i', 'b_i', 'c_i'];

假如你处理的是二维数组,处理方式也是万变不离其宗的。

$arr = [
    ['name' => 'a'],
    ['name' => 'b'],
    ['name' => 'c']
];
 
array_walk($arr, function (&$item) {
    $item['name'] = $item['name'] . '_i';
});
 
print_r($arr); // [['name' => 'a_i'], ['name' => 'b_i'], ['name' => 'c_i']];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值