PHP - Vòng lặp Foreach

Xin chào các bạn lập trình viên tương lai! Hôm nay, chúng ta sẽ cùng nhau khám phá một trong những công cụ hữu ích nhất trong bộ công cụ của một nhà lập trình PHP: vòng lặp foreach. Là người thầy thân thiện trong lĩnh vực khoa học máy tính, tôi rất háo hức dẫn dắt các bạn trong hành trình này. tin tôi đi, đến cuối bài học này, bạn sẽ biết cách vòng lặp như một chuyên gia!

PHP - Foreach Loop

Foreach Loop là gì?

Trước khi chúng ta đi vào chi tiết, hãy hiểu forearch loop là gì. Hãy tưởng tượng bạn có một giỏ táo, và bạn muốn kiểm tra từng quả táo xem có sâu không. Bạn sẽ picking up một quả táo tại một thời điểm, kiểm tra nó, và tiếp tục sang quả tiếp theo. Đó chính xác là điều mà vòng lặp foreach làm với dữ liệu!

Trong PHP, vòng lặp foreach được thiết kế để làm việc với các mảng. Nó cho phép bạn duyệt qua từng phần tử trong một mảng mà không cần biết có bao nhiêu phần tử hoặc lo lắng về số thứ tự index. Nó giống như có một người giúp việc kỳ diệu đưa cho bạn từng quả táo từ giỏ, một quả một quả.

Bây giờ, hãy c rolled up our sleeves và bắt đầu lập mã!

Sử dụng vòng lặp "foreach" với mảng có index

Hãy bắt đầu với hình thức đơn giản nhất của các mảng: mảng có index. Đây giống như những hộp có số hiệu, mỗi hộp chứa một piece of data.

<?php
$fruits = ["Apple", "Banana", "Cherry", "Date"];

foreach ($fruits as $fruit) {
echo $fruit . "<br>";
}
?>

Nếu bạn chạy đoạn mã này, bạn sẽ thấy:

Apple
Banana
Cherry
Date

Hãy phân tích điều này:

  1. Chúng ta tạo một mảng叫做 $fruits với bốn phần tử.
  2. Vòng lặp foreach duyệt qua từng phần tử của $fruits.
  3. Trong mỗi lần lặp, nó gán phần tử hiện tại cho biến $fruit.
  4. Sau đó, chúng ta echo $fruit kèm theo một line break <br>.

Đó là tất cả! Vòng lặp foreach tự động biết có bao nhiêu phần tử trong mảng và dừng lại khi đến cuối. Không cần lo lắng về độ dài của mảng hoặc số thứ tự index.

Duyệt một mảng liên hợp sử dụng vòng lặp "foreach"

Bây giờ, hãy nâng cấp! Các mảng liên hợp giống như những hộp có nhãn. Thay vì sử dụng số, chúng ta sử dụng tên (keys) để nhận diện từng piece of data (value).

<?php
$person = [
"name" => "John Doe",
"age" => 30,
"job" => "Developer"
];

foreach ($person as $key => $value) {
echo "$key: $value<br>";
}
?>

Điều này sẽ ra output:

name: John Doe
age: 30
job: Developer

Dưới đây là những gì đang xảy ra:

  1. Chúng ta tạo một mảng liên hợp $person với ba cặp key-value.
  2. Trong vòng lặp foreach, chúng ta sử dụng $key => $value để truy cập cả key và value của từng phần tử.
  3. Sau đó, chúng ta echo cả key và value trong mỗi lần lặp.

Điều này rất hữu ích khi bạn cần làm việc với dữ liệu có các nhãn có ý nghĩa, như chi tiết của một người hoặc thông tin sản phẩm.

Duyệt một mảng 2D sử dụng vòng lặp "foreach"

Sẵn sàng cho cấp độ boss không? Hãy cùng nhau vượt qua mảng 2D! Đây giống như có những hộp trong hộp - mảng trong một mảng.

<?php
$students = [
["name" => "Alice", "grade" => 85],
["name" => "Bob", "grade" => 92],
["name" => "Charlie", "grade" => 78]
];

foreach ($students as $student) {
echo "Name: " . $student["name"] . ", Grade: " . $student["grade"] . "<br>";
}
?>

Điều này sẽ output:

Name: Alice, Grade: 85
Name: Bob, Grade: 92
Name: Charlie, Grade: 78

Hãy phân tích điều này:

  1. Chúng ta có một mảng 2D $students, nơi mỗi phần tử là một mảng liên hợp.
  2. Vòng lặp outer foreach duyệt qua từng học sinh trong $students.
  3. Trong mỗi lần lặp, $student trở thành một mảng liên hợp.
  4. Sau đó, chúng ta truy cập các key "name" và "grade" của từng $student array.

Mẫu này rất mạnh mẽ cho việc làm việc với các cấu trúc dữ liệu phức tạp, như kết quả từ cơ sở dữ liệu hoặc dữ liệu JSON từ các API.

Lời khuyên và mẹo thực tế

Bây giờ chúng ta đã bao gồm các основы, hãy để tôi chia sẻ một số lời khuyên từ những năm dạy học và lập mã của mình:

  1. Chỉnh sửa các phần tử của mảng: Nếu bạn muốn chỉnh sửa mảng gốc, sử dụng ký tự & để truyền theo tham chiếu:
<?php
$numbers = [1, 2, 3, 4, 5];

foreach ($numbers as &$number) {
$number *= 2;
}

print_r($numbers);
?>

Điều này sẽ gấp đôi từng số trong mảng.

  1. Thoát khỏi vòng lặp: Bạn có thể sử dụng break để thoát khỏi vòng lặp sớm:
<?php
$numbers = [1, 2, 3, 4, 5];

foreach ($numbers as $number) {
if ($number == 3) {
break;
}
echo $number . "<br>";
}
?>

Điều này sẽ chỉ output 1 và 2.

  1. Bỏ qua các lần lặp: Sử dụng continue để bỏ qua đến lần lặp tiếp theo:
<?php
$numbers = [1, 2, 3, 4, 5];

foreach ($numbers as $number) {
if ($number % 2 == 0) {
continue;
}
echo $number . "<br>";
}
?>

Điều này sẽ chỉ output các số lẻ: 1, 3 và 5.

Kết luận

Chúc mừng! Bạn đã vừa thành thạo vòng lặp foreach trong PHP. Từ các mảng đơn giản đến các cấu trúc phức tạp 2D, bạn bây giờ có quyền lực để duyệt qua dữ liệu như một chuyên gia. Nhớ rằng, thực hành làm nên hoàn hảo, vì vậy đừng ngần ngại thử nghiệm với các loại mảng khác nhau và cấu trúc vòng lặp.

Khi chúng ta kết thúc, hãy để lại một chút hài hước lập trình: Tại sao lập trình viên từ bỏ công việc của mình? Vì anh ấy không có mảng! ?

Tiếp tục lập mã, 保持好奇心, và nhớ - trong thế giới lập trình, mỗi vòng lặp là một cơ hội để học điều mới!

Credits: Image by storyset