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。