DANH MỤC: PHP Cơ Bản

Bài 9: Vòng lặp for và foreach trong PHP


Sau khi đã học xong câu lệnh rẽ nhánh trong PHP thì phần tiếp theo không thể thiếu trong lập trình nói chung và với PHP nói riêng sẽ là vòng lặp. Và đương nhiên chúng ta cần biết vòng lặp nó là cái quái gì?

1, Vòng lặp là gì?

- Vòng lặp là một chuỗi sự kiện, hành động được lặp đi lặp lại theo một nguyên tắc nhất định. Ví dụ như vong lặp của con người: sinh-lão-bệnh-tử.

-Và đối với PHP nó hỗ trợ chúng ta 4 kiểu vòng lặp(loop) là for, foreach, whiledo-while.

2, Vòng lặp for.

-Đây là loại vòn lặp phổ biết nhất trong lập trình:

Cú Pháp:

for (bienkhoitao; dieukienthucthi; buocnhay) { 
    // code...
}

Trong đó:

  • bienkhoitao: là giá trị khởi tạo ban đầu của vòng lặp.
  • dieukienthucthi: là điều kiện mà vòng lặp được phép chạy(chú ý: Nếu bạn muốn lặp vô tận thì có thể bỏ trống).
  • buocnhay: là khoảng đệm nhảy của mỗi vòng lặp.

Để cho dễ hiểu chúng ta cùng xét ví dụ sau nhé:

<?php
for ($i = 1; $i <= 10; $i++) {
    echo 'Tôi đang chạy đến số ' . $i . '<br/>';
}
?>

-Ở bài toán trên tôi đã cho khởi tạo vòng lặp chạy từ 1 cho đến 10: và cứ mỗi một lần lặp thì in ra dòng chữ : 'tôi đang chạy đến số' + số mà vòn lặp chạy tới.

Khi chạy đoạn code trên thì kết quả trả về như sau:

Tôi đang chạy đến số 0
Tôi đang chạy đến số 1
Tôi đang chạy đến số 2
Tôi đang chạy đến số 3
Tôi đang chạy đến số 4
Tôi đang chạy đến số 5
Tôi đang chạy đến số 6
Tôi đang chạy đến số 7
Tôi đang chạy đến số 8
Tôi đang chạy đến số 9
Tôi đang chạy đến số 10

3, Vòng lặp foreach.

-Đây là một loại vòng lặp rất là hay dùng để lặp mảng, object và chính vì điều này nên nó sẽ được sử dụng rất nhiều về sau.

Cú pháp:

<?php
foreach ($variable as $key => $value) {
    // code...
}
?>

hoặc nếu không muốn lặp key của mảng, object.

<?php 
foreach ($variable as $value) {
    // code...
}   
?>

Trong đó:

  • $variable: Là biến mà các bạn muốn lặp (có thể là array, object).
  • $key: Là các key của mảng hoặc properties của object.
  • $value: Là giá trị của mảng,object.

Để cho dễ hiểu thì mọi người cùng xem qua VD sau rồi tự đưa ra kết luận nhé.

<?php
//Khởi tạo mảng có key tự tăng.
$data = [
    'A',
    'B',
    'C',
    'D'
];
// Lặp cả key lẫn value của mảng
foreach ($data as $key => $value) {
    echo "Đây là phần tử có key = $key và có giá trị= $value <br/>";
}
// Tạo khoảng phân cách để dễ phân biệt
echo "_________________________________________________________________ <br/>";
// Lặp value của mảng
foreach ($data as $value) {
    echo "Giá trị phần tử= $value <br/>";
}
?>

Và Kết quả trình duyệt trả về sẽ có dạng như sau:

Đây là phần tử có key = 0 và có giá trị= A 
Đây là phần tử có key = 1 và có giá trị= B 
Đây là phần tử có key = 2 và có giá trị= C 
Đây là phần tử có key = 3 và có giá trị= D 
_________________________________________________________________ 
Giá trị phần tử= A 
Giá trị phần tử= B 
Giá trị phần tử= C 
Giá trị phần tử= D 

4, For và foreach lồng.

-Cũng giống như trong câu lệnh rẽ nhánh, vòng lặp cũng hoàn toàn có thể lồng nhau được.

For

VD: vẽ tam giác vuông bằng vòng lặp for.

<?php
for ($i = 0; $i <= 10; $i++) {
    for ($j = $i; $j <= 10; $j++) {
        echo "*";
    }
    echo "<br>";
}
?>

Foreach

VD: duyệt mảng 2 chiều với vòng foreach lồng nhau:

<?php
$data = [0 => 1, 1 => [3 => 4, 5 => 6]];
foreach ($data as $val) {
    if (is_array($val)) {
        foreach ($val as $v) {
            echo $v . "<br/>";
        }
    } else
        echo $val . "<br>";
}
?>

5, Lời kết.

-Qua phần trên mình đã giới thiệu với mọi người 2 dạng vòng lặp trong tổng số 4 dạng vòng lặp mà PHP hỗ trợ, phần tiếp theo mình sẽ giới thiệu tiếp về 2 dạng vòng lặp còn lại.

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

Biển học vô biên, quay đầu là dại!

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia