Hướng dẫn foreach multidimensional array php

The array you're trying to iterate with your foreach loop is not the same as the array you have. In order to use that loop, your array would need to be like this instead:

[
    [
        'work_time' => 0.00,
        'break_time' => 0.00,
        'meeting_time' => 0.00,
        'login_time' => '10:11',
        'logout_time' => '00:00',
        'work_date' => '2018-04-13'
    ],
    [
        'work_time' => 3.96,
        'break_time' => 0.00,
        'meeting_time' => 0.00,
        'login_time' => '08:48',
        'logout_time' => '13:00',
        'work_date' => '2018-04-16'
    ],
    [
        'work_time' => 7.75,
        'break_time' => 1.06,
        'meeting_time' => 0.00,
        'login_time' => '09:09',
        'logout_time' => '17:59',
        'work_date' => '2018-04-17'
    ],
];

The array you have looks like the type of input you get if you have an HTML form with multiple rows of inputs with names like this:


If that is the case, you can get an array like the one I showed above instead by switching the keys around and specifying a numeric key for each row:


Then it will make more sense to access the data as rows. If that's not the case, well, never mind. :)


On the other hand, with the array you have, you can just iterate one of the inner arrays directly. For example, if you wanted to show login_time values, it's just

foreach ($Work['login_time'] as $login_time) {
    echo $login_time;
}

If you need to get corresponding values from the other inner arrays, you can use the key from the array you're iterating to access those as well:

foreach ($Work['login_time'] as $key => $login_time) {
    echo 'login time: ' . $login_time . ', work_date: ' . $Work['work_date'][$key];
}

Nội dung

  • Vòng lặp Foreach PHP hoạt động như thế nào
  • Cú pháp hàm Foreach Array PHP
  • Nguyên tắc hoạt động của Vòng lặp Foreach PHP
  • Lưu đồ Vòng lặp PHP Foreach
  • Các ví dụ về hàm Foreach trong PHP
    • Ví dụ 1
    • Ví dụ 2
    • Ví dụ 3
    • Ví dụ 4
  • Kết luận:

Trước tiên, ta cùng nhắc lại khái niệm vòng lặp là gì? Vòng lặp là một chuỗi hành động được lặp lại nhiều lần trên khối mã và theo một nguyên tắc nhất định. Hiện nay, có nhiều loại vòng lặp PHP như for, while, do và trong đó phải nhắc đến vòng lặp Foreach PHP.

Vòng lặp Foreach sẽ giúp bạn cải thiện được mã nguồn gọn gàng và nhanh chóng hơn. Đặc biệt là giúp các bạn mới bắt đầu học lập trình dễ dàng viết mã, hoặc các bài liên quan đến cơ sở dữ liệu.

Vậy cách PHP Foreach này hoạt động ra sao và cú pháp như thế nào, hãy cùng chúng tôi tìm hiểu ở bài viết ngay bên dưới nhé.

Cũng như các vòng lặp khác trong PHP, vòng lặp Foreach PHP là cú pháp giúp bạn lặp 1 đoạn mã nhiều lần với số lần lặp bằng chính số phần tử của mảng.

Điểm khác biệt là vòng lặp PHP Foreach chỉ làm việc với Array (mảng) mà thôi, nên nếu bạn cố gắng sử dụng chúng trên các loại biến khác, sẽ dễ dẫn đến lỗi.

Các hàm Foreach trong PHP đều có mục đích cụ thể, được sử dụng với các loại biến PHP phức tạp hơn như mảng và đối tượng (objects).

Với mỗi vòng lặp tham số $value thay đổi thành một giá trị mới. Trong một vòng lặp PHP thông qua mảng hoặc một đối tượng, $value nhận từng giá trị từ phần tử đầu tiên cho đến khi mảng kết thúc.

Sau đây là ví dụ, hàm Foreach trong PHP được sử dụng để hiển thị mọi phần tử trong mảng $animals:

$animals = array(“rabbit”, “cat”, “bmw”, “lama”);

foreach ($animals as $value)

{

echo “$value
”;

}

?>

(Nguồn: https://www.bitdegree.org/learn/php-for-loop#foreach-explained)

Cú pháp hàm Foreach Array PHP

Chúng chỉ hoạt động trên mảng và đối tượng. Nếu bạn cố gắng sử dụng với các biến của kiểu dữ liệu khác sẽ gây ra lỗi.

Vòng lặp hoạt động dựa trên cơ sở các phần tử thay vì index. Chúng cung cấp một các dễ dàng nhất để lặp lại các phần tử của một mảng và chúng ta không cần tăng thêm giá trị.

Dưới đây là 2 cú pháp hàm Foreach Array PHP thường gặp:

Cú pháp 1: 

foreach ($array as $value) {

//code to be executed

}

Cú pháp 2

foreach ($array as $key => $element) {

//code to be executed

}

Nguyên tắc hoạt động của Vòng lặp Foreach PHP

Hàm Foreach trong PHP được sử dụng để duyệt các phần tử của mảng. Dựa trên 2 cú pháp trên, vòng lặp foreach cũng có nguyên tắc hoạt động như sau:

  • Giá trị đầu tiên của mảng $array sẽ gán vào biến tạm $value ở vòng lặp đầu tiên
  • Sau đó, qua mỗi vòng lặp thì biến tạm sẽ được gán giá trị của phần tử tiếp theo của mảng
  • Cứ như vậy, vòng lặp sẽ lặp đi lặp lại đến khi duyệt qua tất cả các phần tử trong mảng $array.

Lưu đồ Vòng lặp PHP Foreach

Để bạn có thể hiểu hơn về vòng lặp Foreach trong PHP, sau đây là lưu đồ của chúng

Hướng dẫn foreach multidimensional array php

Một mẫu vòng lặp FOREACH trong PHP

Các ví dụ về hàm Foreach trong PHP

Để bạn có thể dễ dàng hiểu hơn về vòng lặp Foreach trong PHP, sau đây là các ví dụ dành cho bạn:

Ví dụ 1

Chương trình PHP để xuất các phần tử mảng bằng hàm foreach in PHP

//declare array

$season = array (“Summer”, “Winter”, “Autumn”, “Rainy”);

//access array elements using foreach loop

foreach ($season as $element) {

echo “$element”;

echo “
”;

}

?>

Kết quả:

Summer

Winter

Autumn

Rainy

Ví dụ 2

Chương trình PHP để xuất các phần tử mảng kết hợp bằng vòng lặp Foreach

//declare array

$employee = array (

“Name” => “Alex”,

“Email” => “”,

“Age” => 21,

“Gender” => “Male”

);

//display associative array element through foreach loop

foreach ($employee as $key => $element) {

echo $key . ” : ” . $element;

echo “
”;

}

?>

Kết quả:

Name : Alex

Email :

Age : 21

Gender : Male

Ví dụ 3

Mảng đa chiều – Multi-dimensional array

//declare multi-dimensional array

$a = array();

$a[0][0] = “Alex”;

$a[0][1] = “Bob”;

$a[1][0] = “Camila”;

$a[1][1] = “Denial”;

//display multi-dimensional array elements through foreach loop

foreach ($a as $e1) {

foreach ($e1 as $e2) {

echo “$e2\n”;

}

}

?>

Kết quả:

Alex Bob Camila Denial

Ví dụ 4

Mảng động – Dynamic array

//dynamic array

foreach (array (‘i’, ‘r’, ‘o’, ‘n’, ‘h’, ‘a’, ‘c’, ‘k’) as $elements) {

echo “$elements\n”;

}

?>

Kết quả:

i r o n h a c k

Kết luận:

Các vòng lặp giúp quá trình làm việc của bạn rút ngắn được một khoảng thời gian đang kể cho những công việc được lặp lại nhiều lần trên cùng 1 thao tác.

Với Foreach PHP cho phép bạn duyệt qua tất cả các phần tử, đặc biệt là các phần tử của mảng.

Hy vọng bài viết vòng lặp Foreach trong PHP đã cung cấp cho các bạn thông tin cần thiết.

Nếu các bạn muốn tìm hiểu thêm kiến thức cũng như được trải nghiệm thực tế khi học PHP. Hãy xem qua khóa học PHP online của Ironhack Việt Nam nhé !