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
发表评论