关于php的数组循环遍历方式这件事
1. for
循环#
- 基本语法:
for (初始化; 条件; 更新) { 循环体; }
-
示例:
$array = [1, 2, 3, 4, 5]; for ($i = 0; $i < count($array); $i++) { echo "当前索引是:$i,对应的值是:{$array[$i]}\n"; }
-
说明:
适用于已知循环次数或数组索引明确的场景。count($array)
函数用于获取数组的长度。
通过$i
控制数组索引,逐个访问数组元素。
2. foreach
循环#
- 基本语法:
foreach (数组 as $键 => $值) { 循环体; }
- 示例:
$array = [1, 2, 3, 4, 5]; foreach ($array as $value) { echo "当前值是:$value\n"; } $assocArray = ['a' => 1, 'b' => 2, 'c' => 3]; foreach ($assocArray as $key => $value) { echo "当前键是:$key,对应的值是:$value\n"; }
-
说明:
适用于遍历数组中的每个元素。
可以直接访问数组的值,也可以通过键值对访问。
支持索引数组和关联数组。
3. foreach
带引用#
- 语法:
foreach (数组 as &$值) { 循环体; }
-
示例:
$array = [1, 2, 3, 4, 5]; foreach ($array as &$value) { $value *= 2; } print_r($array);
- 说明:
通过引用$value
,可以在循环中直接修改数组的值。
修改$value
会影响原始数组。
4. while
循环#
- 基本语法:
while (条件) { 循环体; }
- 示例:
$array = [1, 2, 3, 4, 5]; $i = 0; while ($i < count($array)) { echo "当前索引是:$i,对应的值是:{$array[$i]}\n"; $i++; }
- 说明:
适用于不确定循环次数或需要更灵活控制循环条件的场景。
需要手动控制循环条件和索引递增。
5. do-while
循环#
- 基本语法:
do { 循环体; } while (条件);
- 示例:
$array = [1, 2, 3, 4, 5]; $i = 0; do { echo "当前索引是:$i,对应的值是:{$array[$i]}\n"; $i++; } while ($i < count($array));
-
说明:
类似于while
循环,但至少会执行一次循环体。
适用于需要确保循环体至少执行一次的场景。
6. array_map
函数#
-
语法:
array_map(callable $callback, array $array1, array $array2, ...)
-
示例:
$array = [1, 2, 3, 4, 5]; $result = array_map(function($value) { return $value * 2; }, $array); print_r($result);
-
说明:
对数组中的每个元素应用回调函数,并返回一个新的数组。
不会修改原始数组。
7. array_walk
函数#
-
语法:
array_walk(array &$array, callable $callback, mixed $userdata = NULL)
-
示例:
$array = [1, 2, 3, 4, 5]; array_walk($array, function(&$value) { $value *= 2; }); print_r($array);
-
说明:
对数组中的每个元素应用回调函数,可以修改原始数组。
支持传递额外的用户自定义参数。
8. array_filter
函数#
-
语法:
array_filter(array $array, callable $callback = null, int $flag = 0)
-
示例:
$array = [1, 2, 3, 4, 5]; $result = array_filter($array, function($value) { return $value % 2 === 0; }); print_r($result);
-
说明:
过滤数组中的元素,根据回调函数的返回值保留满足条件的元素。
返回一个新的数组。
9. array_reduce
函数#
-
语法:
array_reduce(array $array, callable $callback, mixed $initial = NULL)
-
示例:
$array = [1, 2, 3, 4, 5]; $sum = array_reduce($array, function($carry, $item) { return $carry + $item; }, 0); echo "总和是:$sum";
-
说明:
将数组中的元素逐步累积为一个单一的值。
返回最终的累积结果。
总结#
-
基本循环:
for
、foreach
。 -
带引用的循环:
foreach
带引用。 -
函数式编程:
array_map
、array_walk
、array_filter
、array_reduce
。 -
其他循环:
while
、do-while
。
作者:Carver-大脸猫
出处:https://www.cnblogs.com/carver/articles/18724270
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
转载请注明原处
本文来自博客园,作者:Carver-大脸猫,转载请注明原文链接:https://www.cnblogs.com/carver/articles/18724270
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现