Số sánh for và foreach trong php

Ở bài trước ta vẫn học về những loại vòng lặp như for, while, vì while các chúng ta cũng có thể xem lại Bài 6: các loại Vòng lặp trong PHP (for, while, vày while). Còn ở bài này mình đã vẫn ra mắt về vòng lặp nhưng văn bản chỉ xoay quanh độc nhất một vòng lặp sẽ là vòng lặp foreach vào PHP.

Bạn đang xem: Số sánh for và foreach trong php


*

Vòng lặp Foreach trong PHP


Vòng lặp foreach vào PHP

Vòng lặp foreach là các loại loop được dùng làm duyệt các phần tử trong mảng, object. Đây là một số loại vòng lặp thường sẽ được sử dụng không hề ít trong những dự án PHP sau này, nhất là các bài liên kết đến các đại lý dữ liệu.

Cú pháp

$value) // code...?>hoặc

Trong đó:

$variable: Là đổi thay 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à một biến đổi tạm dùng để làm chứa giá trị được sao chép của từng phần tử của mảng, object.

Bài tập ví dụ 1

$value) echo "Đây là thành phần có key = $key và có giá trị= $value ";?>Ở lấy ví dụ như trên thì $array là mảng ta truyền vào, $key $value là 2 tham số nhưng ở từng vòng lặp nó auto truyền giá chỉ trị. Kết quae xuất ra màn hình là:

Phần tử bao gồm key = 0 với giá trị= APhần tử bao gồm key = 1 và giá trị= BPhần tử có key = 2 cùng giá trị= CPhần tử tất cả key = 3 với giá trị= D

Cũng từ bài bác ví dụ trên ta rất có thể dùng theo cú pháp thứ 2 của vòng lặp foreach trong php như sau:

Ở mỗi vòng lặp foreach, PHP sẽ khởi tạo ra các bạn dạng sao để bọn họ lấy tài liệu của phần tử đang lặp đó, bạn dạng sao này sẽ được đào thải ngay chớp nhoáng sau khi ngừng vòng lặp. Và ở từng vòng lặp sẽ bình chọn còn thành phần liền kề hay không? ví như còn thì vòng lặp được tiếp tục, trái lại thì đang dừng.

Ở lấy ví dụ trên, các phiên bản sao của trở thành $array sẽ được tạo nên và mình dường như không truyền đổi thay $key vào trong tầm foreach cần mình chỉ hoàn toàn có thể xuất được những giá trị $value ra màn hình hiển thị mà thôi.

Xem thêm: Shiseido Senka Perfect Whip Cleansing Foam Reviews, Photos, Ingredients

Kết quả xuất ra screen sẽ là: A -B -C -D –

Dùng tham chiếu để biến hóa phần tử lúc này trong mảng foreach

Hãy coi ví dụ mặt dưới.

";print_r($mang); //xuất mảng?>Kết quả ra screen sẽ là:

Array( <0> => one <1> => two <2> => three <3> => four <4> => five)Ở lấy ví dụ như trên tôi đã sử dụng hàm strtoupper nhằm mục đích mục đích in hoa hết những chuỗi ký kết tự là các giá trị của các phần tử có vào bảng array. Nhưng hiệu quả xuất ra màn hình hiển thị vẫn là chứ thường.

Giải thích:

Khi bắng đầu 1 loop foreach, PHP đang tạo ra 1 phiên bản sao của mảng gốc để lặp, do đó khi đổi khác các quý giá trong mảng gốc thì sẽ không có tác dụng. Do vậy lúc lặp bọn họ sẽ truyền tham chiếu truy xuất mang đến mảng gốc, tất cả như vậy thì PHP sẽ không còn tạo 1 bạn dạng copy mảng để sử dụng nữa mà nó sẽ được gọi mang đến và lặp trực tiếp trên mảng gốc. Lúc này, chúng ta đổi khác giá trị các bộ phận trong mảng gốc sẽ sở hữu tác dụng.

Cách gọi 1 tham chiếu cho biến: đặt thêm cam kết tự “&” trước biến chuyển đó.

Như vậy cũng từ lấy ví dụ trên ta sẽ có tác dụng như sau:

";print_r($mang); //xuất mảng?>Ở đây mình đã sử dụng tham chiếu &$value nhằm truy xuất cho mảng gốc, trong lúc này ta biến hóa giá trị của các phần tử trong mảng gốc sẽ có hiệu lực và ra công dụng như sau.

Array( <0> => XIN <1> => CHAO <2> => MOI <3> => NGUOI <4> => DEN <5> => VOI <6> => KHOA <7> => HOC <8> => PHP <9> => CAN <10> => BAN)Kết luận:

Foreach trong PHP sẽ tạo nên ra một bạn dạng sao của mảng để lặp.Khi foreach sẽ lặp theo bản sao của mảng gốc thì biến hóa giá trị thành phần trong mảng theo cách thông thường sẽ không có tác dụngMuốn biến đổi giá trị thành phần hiện tại trong những khi lặp thì nên dùng tham chiếu.

Vòng lặp foreach lồng nhau (mảng 2 chiều)

Cũng như những vòng lặp đã có đề cập ở bài xích 6 thì so với vòng lặp foreach trong bài này cũng có thể có tính chất tương tự là có thể lồng nhau. Thường xuyên thì ta sẽ thực hiện vòng lặp foreach lồng nhau nhằm duyệt bộ phận của mảng 2 chiều.

Ví dụ: chăm chút các phần tử của mảng 2d bằng vòng lặp foreach:

1, 1 => <1 => 4, 2 => 6>, 2 => <1 => "aa", 2 => "bb">, 3 => <1 => 10, 2 => "cc", 3 => 0>>;foreach ($array as $value) if (is_array($value)) foreach ($value as $item) echo $item . " - "; else echo $value . " - ";?>Như vậy ta sẽ có được kêt đúng như sau: 1 – 4 – 6 – aa – bb – 10 – cc – 0 –


Kết thúc:

Vậy là qua bài 6 và bài bác 7 này mình đã reviews cho chúng ta về 4 loạn vòng lặp khác nhau thường được dùng trong PHP. Nếu chúng ta có thắc mắc nay cần hỗ trợ tư vấn điều gì thì nên để lại bình luận bên dưới nội dung bài viết này nhé!, bản thân sẽ cố gắng hỗ trợ những bạn!