foreach 是 PHP 中专门用于遍历数组和对象的循环结构,比传统的 for 循环更简洁易用。
基本语法
1. 遍历数组(只取值)
php
foreach ($array as $value) {
// 处理 $value
}
2. 遍历数组(取键和值)
php
foreach ($array as $key => $value) {
// 处理 $key 和 $value
}
示例
基本遍历
php
$fruits = ["apple", "banana", "orange"];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
输出:
text
apple
banana
orange
带键名的遍历
php
$fruits = ["a" => "apple", "b" => "banana", "o" => "orange"];
foreach ($fruits as $key => $fruit) {
echo "$key: $fruit\n";
}
输出:
text
a: apple
b: banana
o: orange
在您的案例中的应用
您可以使用 foreach 来实现相同的输出效果:
php
function my_callback($item) {
return strlen($item);
}
$strings = ["apple", "orange", "banana", "coconut"];
$lengths = array_map("my_callback", $strings);
// 使用 foreach 输出
$output = [];
foreach ($strings as $index => $fruit) {
$output[] = "$fruit=" . $lengths[$index];
}
echo implode(", ", $output);
或者更直接的方式:
php
$strings = ["apple", "orange", "banana", "coconut"];
foreach ($strings as $fruit) {
$result[] = "$fruit=" . strlen($fruit);
}
echo implode(", ", $result);
高级用法
1. 引用传递(修改原数组)
php
$numbers = [1, 2, 3];
foreach ($numbers as &$num) {
$num *= 2;
}
print_r($numbers); // 输出:[2, 4, 6]
2. 遍历多维数组
php
$users = [
["name" => "Alice", "age" => 25],
["name" => "Bob", "age" => 30]
];
foreach ($users as $user) {
echo $user["name"] . " is " . $user["age"] . " years old\n";
}
注意事项
foreach 不会修改原数组指针
使用引用传递后,建议 unset($value) 避免后续操作出现问题
foreach 可以遍历实现了 Iterator 接口的对象
foreach 是 PHP 中最常用的循环结构之一,特别适合处理数组数据。
评论