php数组循环遍历方式

文章描述:

php数组是常用的数据存储,使用起来是简介明了,php数组循环遍历方式有以下几种:for、foreach、array_map、array_walk、each、reset等。

 

foreach

$arr = ['a', 'b', 'c'];

foreach ($arr as $key => $val) {
    $arr[$key] = $val;
}
echo "<pre>";
print_r($arr);

结果:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

 

array_map

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

$arr = ['a', 'b', 'c'];

$arr = array_map(function ($item) {
    return $item;
}, $arr);

echo "<pre>";

print_r($arr);

 

array_walk

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

$arr = ['a', 'b', 'c'];

array_walk($arr, function (&$item) {
    $item = $item ;
});
echo "<pre>";
print_r($arr);

 

for

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

$arr = ['a', 'b', 'c'];

for ($i = 0; $i < count($arr); ++$i) {
    $arr[$i] = $arr[$i];
}
echo "<pre>";
print_r($arr);

 

each

函数在PHP7.2已经被废弃了,而且感觉特别古老的书写方式。这种写法的执行效率也不行。

$arr = ['a', 'b', 'c'];

while (list($key, $value) = each($arr)) {
    $arr[$key] = $value;
}
echo "<pre>";
print_r($arr);

 

reset

准确的讲并不止reset一个函数,需要组合多个内置函数,平常写代码基本是用不上的

$arr = ['a', 'b', 'c'];
// reset() 指针切换到头部,其实默认就是指向开头,可以忽略这句
reset($arr);

// current() 获取当前指针的元素值
while ($value = current($arr)) {
    // key() 获取当前指针的元素下标
    $arr[key($arr)] = $value ;
    // next() 指针移到下一个
    next($arr);
}
echo "<pre>";
print_r($arr);

总结:以上循环函数方法中,个人还是比较喜欢用foreach,因为执行效率快,而且还有键值方便处理一些列操作等。

发布时间:2022/05/11

发表评论