php实现foreach遍历
PHP 中 foreach 遍历的基本用法
foreach 是 PHP 中用于遍历数组和对象的循环结构,支持两种语法形式:
// 仅获取值
foreach ($array as $value) {
// 处理 $value
}
// 同时获取键和值
foreach ($array as $key => $value) {
// 处理 $key 和 $value
}
遍历索引数组
对于数字索引数组,可以直接遍历值:
$colors = ["red", "green", "blue"];
foreach ($colors as $color) {
echo $color . "\n";
}
遍历关联数组
对于键值对形式的关联数组,可以同时获取键和值:
$user = [
"name" => "John",
"age" => 30,
"email" => "john@example.com"
];
foreach ($user as $key => $value) {
echo "$key: $value\n";
}
遍历对象
foreach 也可以遍历对象的可见属性:
class User {
public $name = "Alice";
protected $age = 25;
private $email = "alice@example.com";
}
$user = new User();
foreach ($user as $key => $value) {
echo "$key: $value\n"; // 只输出 public 属性
}
使用引用修改数组
在变量前加 & 可以修改原数组元素:
$numbers = [1, 2, 3];
foreach ($numbers as &$num) {
$num *= 2;
}
print_r($numbers); // 输出 [2, 4, 6]
遍历多维数组
处理嵌套数组结构:

$users = [
["id" => 1, "name" => "Tom"],
["id" => 2, "name" => "Jerry"]
];
foreach ($users as $user) {
echo "User ID: " . $user["id"] . ", Name: " . $user["name"] . "\n";
}
注意事项
- 使用引用遍历后,应 unset() 引用变量避免意外修改
- 遍历大型数组时,考虑性能影响
- 对象遍历默认只包含 public 属性,需实现 Iterator 接口控制遍历行为






