foreach 是 PHP 4 引入的專用數組遍歷結構,語法簡潔、功能強大,是處理數組的首選方式。本文系統梳理雙重語法、對象遍歷、指針行為等核心知識點。
// 1. 僅獲取值
foreach ($array as $value) {
// 處理 $value
}
// 2. 同時獲取鍵名和值
foreach ($array as $key => $value) {
// 處理 $key 和 $value
}
reset()$value 不影響原數組&$value 可修改原數組(PHP 5+)Traversable 接口的對象除非數組被引用,
foreach操作的是數組拷貝。循環中或循環後不要依賴數組指針位置,除非顯式reset()。
$arr = [1, 2, 3, 4];
foreach ($arr as &$value) {
$value *= 2;
}
// $arr = [2, 4, 6, 8]
// 限制:僅適用於可引用的變量
foreach (array(1,2,3) as &$v) { } // Fatal Error
$matrix = [
[1, 2, 3],
[4, 5, 6]
];
foreach ($matrix as $row) {
foreach ($row as $cell) {
echo $cell . ' ';
}
echo "\n";
}
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $key => $value) {
if ($value % 2 === 0) {
unset($arr[$key]); // 安全:操作的是拷貝
}
}
count(),預先存儲長度