Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Vòng lặp foreach trong PHP

Giới thiệu

Câu lệnh foreach là một trong các cấu trúc lặp của PHP. Các câu lặp khác như while, do while, for dùng để tạo vòng lặp có điều kiện hoặc đếm. Ngược lại, foreach rất tiện lợi để lặp qua cấu trúc mảng (array).

Cú pháp

foreach (array_expression as $value)
    statement

foreach (array_expression as $key => $value)
    statement

Dạng đầu tiên lặp qua các phần tử trong indexed array. Mỗi lần lặp, biến $value được gán phần tử hiện tại. PHP theo dõi con trỏ nội bộ bằng cách tiến đến phần tử tiếp theo, cho đến hết mảng. Giá trị mỗi phần tử được xử lý bởi body của vòng lặp.

Dạng thứ hai phù hợp cho duyệt associative array. Mỗi lần lặp unpack phần tử hiện tại vào $key và $value. Sau khi xử lý body, con trỏ mảng tiến đến cặp key-value tiếp theo cho đến khi mảng hết.

Ví dụ

Duyệt indexed array

<?php
$arr = array(2, 4, 6, 8, 10);
foreach ($arr as $i) {
    echo $i . "*2=" . $i*2 . "\n";
}
?>

Kết quả

2*2=4
4*2=8
6*2=12
8*2=16
10*2=20

Duyệt associative array

<?php
$arr = array("Phy" => 50, "Che" => 60, "Maths" => 70, "Bio" => 80);
foreach ($arr as $sub => $marks) {
    echo "marks in $sub: " . $marks . "\n";
}
?>

Kết quả

marks in Phy: 50
marks in Che: 60
marks in Maths: 70
marks in Bio: 80

Duyệt mảng 2D với foreach lồng nhau

<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = [6, 7, 8, 9, 10];
$twodim = [$arr1, $arr2];
foreach ($twodim as $row) {
    foreach ($row as $col) {
        echo $col . " ";
    }
    echo "\n";
}
?>

Kết quả

1 2 3 4 5
6 7 8 9 10

Mảng 2D các mảng liên hợp

<?php
$arr1 = ["rno" => 1, "name" => "Kiran", "marks" => 50];
$arr2 = ["rno" => 2, "name" => "anil", "marks" => 60];
$arr3 = ["rno" => 3, "name" => "Bina", "marks" => 70];
$twodim = [$arr1, $arr2, $arr3];
foreach ($twodim as $row) {
    foreach ($row as $k => $v) {
        echo $k . ":" . $v . " ";
    }
    echo "\n";
}
?>

Kết quả

rno:1 name:Kiran marks:50
rno:2 name:anil marks:60
rno:3 name:Bina marks:70