Vòng lặp foreach
Thuộc phần Kiến thức cơ bản trong hành trình PHP của Coddy. Bài học 49 trên 71.
Khi làm việc với mảng (array), bạn thường cần duyệt qua từng phần tử. Bạn có thể dùng vòng lặp for với biến đếm chỉ số, nhưng PHP có một giải pháp gọn gàng hơn: vòng lặp foreach.
Vòng lặp foreach của PHP được thiết kế để duyệt qua các mảng. Nhiều ngôn ngữ có vòng lặp tương tự, còn trong PHP, nó tự đếm giúp bạn và cho phép truy cập trực tiếp vào từng phần tử.
<?php
$fruits = ["apple", "banana", "cherry"];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
?>Kết quả là:
apple
banana
cherryCú pháp khá đơn giản: foreach ($array as $item). Ở mỗi lần lặp (iteration), chương trình gán phần tử (element) tiếp theo trong mảng (array) cho $item, rồi bạn có thể dùng nó trong thân vòng lặp (loop body).
Hãy so sánh cách này với cách đạt được cùng kết quả bằng vòng lặp for:
<?php
$fruits = ["apple", "banana", "cherry"];
for ($i = 0; $i < count($fruits); $i++) {
echo $fruits[$i] . "\n";
}
?>Phiên bản foreach ngắn hơn và dễ đọc hơn. Bạn không cần quản lý biến chỉ số hay lo về độ dài của mảng, PHP sẽ xử lý tất cả những việc đó cho bạn.
Thử thách
DễĐọc một dòng đầu vào chứa danh sách số được phân tách bằng dấu phẩy (ví dụ: 10,25,5,30,15).
Dùng vòng lặp foreach để duyệt qua mảng và tính tổng tất cả các số. In ra tổng.
Ví dụ 1:
Nếu đầu vào là 10,25,5,30,15, đầu ra sẽ là:
85Ví dụ 2:
Nếu đầu vào là 1,2,3,4,5, đầu ra sẽ là:
15Ví dụ 3:
Nếu đầu vào là 100,200,300, đầu ra sẽ là:
600Tự làm thử
<?php
// Đọc đầu vào
$input = trim(fgets(STDIN));
$numbers = explode(',', $input);
// TODO: Viết code bên dưới để tính tổng bằng vòng lặp foreach
$sum = 0;
// In ra kết quả
echo $sum;
?>Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức cơ bản
4Toán tử so sánh và logic
Toán tử so sánhBằng nhau và đồng nhấtToán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giản2Biến và kiểu dữ liệu
SốChuỗi và dấu ngoặc képGiá trị BooleanQuy ước đặt tênÔn tập: khởi tạo biếnBiến rỗngNối chuỗiNhận đầu vào từ người dùngChuyển đổi sang kiểu dữ liệu khác5Logic điều kiện
Câu lệnh ifIf và elseToán tử ba ngôiToán tử kết hợp nullCâu lệnh switchÔn tập: đưa ra quyết định3Các toán tử cơ bản
Toán tử số họcToán tử chia lấy dưToán tử lũy thừaPhép gán kết hợpTăng/giảmThứ tự ưu tiên của toán tửÔn tập: phép tính đơn giảnToán tử chuỗiTự luyện tập: Trình biên dịch PHP online