Hướng dẫn for and foreach php - for và foreach php

1) Vòng lặp là gì !?

- Trong PHP, vòng lặp là một loại cú pháp giúp ta lặp lại việc thực thi một đoạn mã nhiều lần.

- Ví dụ, nếu tôi muốn hiển thị lên màn hình 100 dòng chữ "Lập Trình Web" thì đáng ra phải gõ 100 câu lệnh echo "Lập Trình Web"; . Tuy nhiên, với việc sử dụng vòng lặp thì chỉ cần ba câu lệnh như bên dưới là đủ.echo "

Lập Trình Web

"; . Tuy nhiên, với việc sử dụng vòng lặp thì chỉ cần ba câu lệnh như bên dưới là đủ.

Lập Trình Web

"; } ?>

Xem ví dụ

- Qua ví dụ trên, ta thấy "vòng lặp" giúp tiết kiệm rất nhiều thời gian trong việc viết những đoạn mã cần thực thi nhiều lần liên tiếp.

- Trong PHP, vòng lặp được chia làm bốn loại:

  • (1) Vòng lặp forfor
  • (2) Vòng lặp foreachforeach
  • (3) Vòng lặp whilewhile
  • (4) Vòng lặp do whiledo while

- Ở bài hướng dẫn này, bạn sẽ được tìm hiểu hai loại vòng lặp là for và foreachforforeach

2) Vòng lặp for trong PHPfor trong PHP

- Vòng lặp for dùng để lặp lại việc thực thi đoạn mã nào đó một số lần.

2.1) Cú pháp

for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}

- Trong đó:

  • Biểu thức 1 thường là một câu lệnh khai báo biến
  • (biến này dùng để tham gia vào biểu thức 2)

  • Biểu thức 2 là một biểu thức điều kiện
  • (nếu điều kiện đúng thì đoạn mã sẽ được thực thi, còn nếu điều kiện sai thì vòng lặp kết thúc)

  • Biểu thức 3 thường là một biểu thức làm thay đổi giá trị của biến được khai báo trong biểu thức 1
  • (mục đích là để cho biểu thức điều kiện dần trở nên bị SAI, giúp vòng lặp được kết thúc)

- Dưới đây là sơ đồ minh họa cho nguyên lý hoạt động của vòng lặp for:

Bắt đầu

Kiểm tra

Khai báo một biến dùng để tham gia vào biểu thức điều kiện(Biểu thức 1)
(Biểu thức 1)

Đoạn mã mà bạn muốn thực thi được thực thi

Thay đổi giá trị biến điều kiện(Biểu thức 3)
(Biểu thức 3)

ĐÚNG

SAI

Tiếp tục quay lại kiểm tra điều kiện

2.2) Ví dụ thứ nhất

- Sử dụng vòng lặp for để hiển thị ba câu "Lập Trình Web" lên màn hình.

Lập Trình Web

"; } ?>

Xem ví dụ

- Dưới đây là phần mô tả các bước thực thi của vòng lặp trên:

  • Lần thứ nhất
    • Khai báo biến i với giá trị là 1.
    • Kiểm tra xem điều kiện i i <= 3 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)

    • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)
  • Lần thứ hai
    • Kiểm tra xem điều kiện i i <= 3 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)

    • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)
  • Lần thứ hai
    • Kiểm tra xem điều kiện i i <= 3 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)

    • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)
  • Lần thứ hai
    • Kiểm tra xem điều kiện i i <= 3 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)SAI vì 4 không nhỏ hơn hoặc bằng 3)

      Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)

Lần thứ hai

Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 3)

";
    }
?>

Xem ví dụ

- Dưới đây là phần mô tả các bước thực thi của vòng lặp trên:

  • Lần thứ nhất
    • Khai báo biến i với giá trị là 1.
    • Kiểm tra xem điều kiện i i < 10 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)

    • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)
  • Lần thứ hai
    • Kiểm tra xem điều kiện i i < 10 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)

    • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)
  • Lần thứ hai
  • Lần thứ hai
  • Lần thứ hai
  • Lần thứ hai
  • Lần thứ hai
  • Lần thứ hai
  • Lần thứ hai
  • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 3)
    • Kiểm tra xem điều kiện i i < 10 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)

    • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)
  • Lần thứ hai
    • Kiểm tra xem điều kiện i i < 10 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)SAI vì 10 không nhỏ hơn 10)

      Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)

Lần thứ hai

Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 3)

 1; $i--){
        echo "Số: " . ($i) . "
"; } ?>

Xem ví dụ

- Dưới đây là phần mô tả các bước thực thi của vòng lặp trên:

  • Lần thứ nhất
    • Khai báo biến i với giá trị là 1.
    • Kiểm tra xem điều kiện i i > 1 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)

    • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)
  • Lần thứ hai
    • Kiểm tra xem điều kiện i i > 1 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)

    • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)
  • Lần thứ hai
  • Lần thứ hai
  • Lần thứ hai
  • Lần thứ hai
  • Lần thứ hai
  • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 3)
    • Kiểm tra xem điều kiện i i > 1 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)

    • Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)
  • Lần thứ hai
    • Kiểm tra xem điều kiện i i > 1 có đúng hay không.
    • (Kết quả đúng nên đoạn mã nằm trong cặp dấu {} được thực thi)SAI vì 1 không lớn hơn 1)

      Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 2)

Lần thứ hai

Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 3)

Lần thứ babiểu thức 1 của ví dụ thứ nhất, biến i được khai báo với giá trị là 1 nhưng còn ở ví dụ thứ hai thì biến i được khai báo với giá trị là 0.

Giá trị của biến i được tăng thêm một (tức bây giờ giá trị của biến i sẽ là 4)biểu thức 2 của ví dụ thứ nhất, biểu thức điều kiện ta dùng phép so sánh <= nhưng còn ở ví dụ thứ hai thì ta dùng phép so sánh <

Lần thứ tưbiểu thức 3 của ví dụ thứ nhất và thứ hai thì ta tăng giá trị của biến thêm một, còn ở ví dụ thứ ba thì ta giảm giá trị của biến đi một.

==> Bạn đừng gò bó vào khuôn khổ việc biến được khai báo là mấy, biểu thức điều kiện là gì, ....

==> Cái mà bạn cần quan tâm chính là thiết kế ra một mô hình giúp cho vòng lặp có thể hoạt động đúng theo số lần mong muốn.

- Ví dụ, năm đoạn mã bên dưới có cách viết khác nhau, tuy nhiên chúng có cùng một chức năng là hiển thị bảy câu "Lập Trình Web" lên màn hình

for($i = 0; $i < 7; $i++){
    echo "

Lập Trình Web

"; }
for($i = 1; $i <= 7; $i++){
    echo "

Lập Trình Web

"; }
for($i = 5; $i < 12; $i++){
    echo "

Lập Trình Web

"; }
for($i = 9; $i > 2; $i--){
    echo "

Lập Trình Web

"; }
for($i = 0; $i < 13; $i = $i + 2){
    echo "

Lập Trình Web

"; }

LƯU Ý THỨ HAI

- Biểu thức 1 thường là câu lệnh khai báo biến để tham gia vào biểu thức điều kiện.Biểu thức 1 thường là câu lệnh khai báo biến để tham gia vào biểu thức điều kiện.

- Tuy nhiên, nếu biến dùng để tham gia vào biểu thức điều kiện đã được khai báo và gán giá trị trước đó rồi thì biểu thức 1 có thể bỏ trống.biểu thức 1 có thể bỏ trống.

- Ví dụ:

for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
0

LƯU Ý THỨ BA

- Biểu thức 3 trong vòng lặp for rất quan trọng, nó khiến điều kiện của vòng lặp dần dần trở thành bị SAI để giúp cho vòng lặp được kết thúc (Nếu một vòng lặp mà điều kiện luôn luôn đúng thì vòng lặp đó sẽ không bao giờ kết thúc và dẫn đến trường hợp chương trình bị lỗi)Biểu thức 3 trong vòng lặp for rất quan trọng, nó khiến điều kiện của vòng lặp dần dần trở thành bị SAI để giúp cho vòng lặp được kết thúc (Nếu một vòng lặp mà điều kiện luôn luôn đúng thì vòng lặp đó sẽ không bao giờ kết thúc và dẫn đến trường hợp chương trình bị lỗi)

- Tuy nhiên, nếu trong đoạn mã được thực thi có chứa câu lệnh làm thay đổi giá trị của biến điều kiện thì biểu thức 3 ta có thể bỏ trống.biểu thức 3 ta có thể bỏ trống.

- Ví dụ:

for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
1

LƯU Ý THỨ BA

- Biểu thức 3 trong vòng lặp for rất quan trọng, nó khiến điều kiện của vòng lặp dần dần trở thành bị SAI để giúp cho vòng lặp được kết thúc (Nếu một vòng lặp mà điều kiện luôn luôn đúng thì vòng lặp đó sẽ không bao giờ kết thúc và dẫn đến trường hợp chương trình bị lỗi)biểu thức 1biểu thức 3 có thể bỏ trống, tuy nhiên đó là một số trường hợp đặc biệt. Về mặt viết mã lệnh tốt thì bạn không nên bỏ trống biểu thức như thế, bạn cần phải xây dựng đoạn mã như thế nào để cho cả ba biểu thức đều phải có mặt đầy đủ.

- Tuy nhiên, nếu trong đoạn mã được thực thi có chứa câu lệnh làm thay đổi giá trị của biến điều kiện thì biểu thức 3 ta có thể bỏ trống.

LƯU Ý THỨ TƯvòng lặp for lồng nhau chỉ là cách sử dụng nâng cao của vòng lặp for thông thường để giúp cho số lần lặp được tăng theo cấp số nhân.

- Trong phần LƯU Ý THỨ HAI & LƯU Ý THỨ BA tôi đã giới thiệu về trường hợp mà biểu thức 1 và biểu thức 3 có thể bỏ trống, tuy nhiên đó là một số trường hợp đặc biệt. Về mặt viết mã lệnh tốt thì bạn không nên bỏ trống biểu thức như thế, bạn cần phải xây dựng đoạn mã như thế nào để cho cả ba biểu thức đều phải có mặt đầy đủ.

2.6) Vòng lặp for lồng nhau

for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
2

- Thực chất vòng lặp for lồng nhau chỉ là cách sử dụng nâng cao của vòng lặp for thông thường để giúp cho số lần lặp được tăng theo cấp số nhân.

- Vòng lặp con được đặt vào bên trong vòng lặp cha. Khi điều kiện của vòng lặp cha đúng thì vòng lặp con sẽ được thực thi.


for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
3

- Dưới đây là cú pháp cơ bản của một vòng lặp for lồng nhau:

- Lưu ý: Bên trong vòng lặp cha, ngoài vòng lặp con thì nó còn có thể chứa thêm các mã lệnh khác.1 2 3 4 5 6 7 8 9


for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
4

- Dưới đây là cú pháp cơ bản của một vòng lặp for lồng nhau:

- Lưu ý: Bên trong vòng lặp cha, ngoài vòng lặp con thì nó còn có thể chứa thêm các mã lệnh khác.


- Hiển thị dãy số từ 1 đến 50 (bằng cách sử dụng vòng lặp for lồng nhau)

- Dưới đây là cú pháp cơ bản của một vòng lặp for lồng nhau:

- Lưu ý: Bên trong vòng lặp cha, ngoài vòng lặp con thì nó còn có thể chứa thêm các mã lệnh khác.

- Hiển thị dãy số từ 1 đến 50 (bằng cách sử dụng vòng lặp for lồng nhau)

Xem ví dụ

- Hiển thị ba dòng dãy số 1 2 3 4 5 6 7 8 9

- Hiển thị một ma trận ô vuông giống hình bên dưới:

for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
5


for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
6

- Dưới đây là cú pháp cơ bản của một vòng lặp for lồng nhau:

- Lưu ý: Bên trong vòng lặp cha, ngoài vòng lặp con thì nó còn có thể chứa thêm các mã lệnh khác.

- Hiển thị dãy số từ 1 đến 50 (bằng cách sử dụng vòng lặp for lồng nhau)

Xem ví dụ

- Hiển thị ba dòng dãy số 1 2 3 4 5 6 7 8 9


for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
7

- Dưới đây là cú pháp cơ bản của một vòng lặp for lồng nhau:

- Lưu ý: Bên trong vòng lặp cha, ngoài vòng lặp con thì nó còn có thể chứa thêm các mã lệnh khác.

- Hiển thị dãy số từ 1 đến 50 (bằng cách sử dụng vòng lặp for lồng nhau)


for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
8

- Dưới đây là cú pháp cơ bản của một vòng lặp for lồng nhau:

- Lưu ý: Bên trong vòng lặp cha, ngoài vòng lặp con thì nó còn có thể chứa thêm các mã lệnh khác.foreach trong PHP

- Hiển thị dãy số từ 1 đến 50 (bằng cách sử dụng vòng lặp for lồng nhau)

Xem ví dụ

- Hiển thị ba dòng dãy số 1 2 3 4 5 6 7 8 9

- Hiển thị một ma trận ô vuông giống hình bên dưới:

for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
9

for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}
5 echo "

Lập Trình Web

";
5 lần.
(vì số phần tử của mảng $data là 5)


Lập Trình Web

"; } ?>
0

- Dưới đây là cú pháp cơ bản của một vòng lặp for lồng nhau:

- Lưu ý: Bên trong vòng lặp cha, ngoài vòng lặp con thì nó còn có thể chứa thêm các mã lệnh khác.

  • - Hiển thị dãy số từ 1 đến 50 (bằng cách sử dụng vòng lặp for lồng nhau)
  • Xem ví dụ
  • - Hiển thị ba dòng dãy số 1 2 3 4 5 6 7 8 9
  • - Hiển thị một ma trận ô vuông giống hình bên dưới:
  • for(biểu thức 1; biểu thức 2; biểu thức 3){
        //Đoạn mã mà bạn muốn được thực thi
    }
    5


Lập Trình Web

"; } ?>
1

- Dưới đây là cú pháp cơ bản của một vòng lặp for lồng nhau:

- Lưu ý: Bên trong vòng lặp cha, ngoài vòng lặp con thì nó còn có thể chứa thêm các mã lệnh khác.


Lập Trình Web

"; } ?>
2

- Dưới đây là cú pháp cơ bản của một vòng lặp for lồng nhau: