[Php 4, Php 5, Php 7, Php 8]
Cấu trúc foreach
cung cấp một cách dễ dàng để lặp lại các mảng. foreach
chỉ hoạt động trên các mảng và đối tượng và sẽ đưa ra lỗi khi bạn cố gắng sử dụng nó trên một biến với một loại dữ liệu khác hoặc một biến không chính xác. Có hai cú pháp:
foreach [iterable_expression as $value] statement foreach [iterable_expression as $key => $value] statement
Hình thức đầu tiên đi qua các điều đó được đưa ra bởi iterable_expression
. Trên mỗi lần lặp, giá trị của phần tử hiện tại được gán cho $value
.
Biểu mẫu thứ hai sẽ chỉ định khóa của phần tử hiện tại cho biến $key
trên mỗi lần lặp.
Lưu ý rằng foreach
không sửa đổi con trỏ mảng bên trong, được sử dụng bởi các hàm như dòng [] và key [].current[] and key[].
Có thể tùy chỉnh lặp đối tượng.
Để có thể sửa đổi trực tiếp các phần tử mảng trong vòng lặp đi trước $value
với &. Trong trường hợp đó, giá trị sẽ được gán bằng tham chiếu.
Cảnh báo
Tham chiếu của $value
và phần tử mảng cuối cùng vẫn còn ngay cả sau vòng lặp foreach
. Nó được khuyến nghị phá hủy nó bằng cách unset []. Nếu không, bạn sẽ trải nghiệm hành vi sau:unset[]. Otherwise you will experience the following behavior:
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:2
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:3
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:4
Có thể lặp lại giá trị của mảng không đổi bằng cách tham khảo:
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:5
Ghi chú::
foreach
không hỗ trợ khả năng triệt tiêu các thông báo lỗi bằng cách sử dụngNotice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:7.
Một số ví dụ khác để chứng minh việc sử dụng:
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:8
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:9
foreach
0Giải nén các mảng lồng nhau có danh sách []
[Php 5> = 5.5.0, Php 7, Php 8]
Có thể lặp lại một mảng mảng và giải nén mảng lồng vào các biến vòng lặp bằng cách cung cấp một danh sách [] làm giá trị.list[] as the value.
Ví dụ:
foreach
1
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:9
foreach
3Ví dụ trên sẽ xuất ra:
Bạn có thể cung cấp ít phần tử hơn trong danh sách [] so với trong mảng lồng nhau, trong trường hợp đó, các giá trị mảng còn sót lại sẽ bị bỏ qua:list[] than there are in the nested array, in which case the leftover array values will be ignored:
foreach
1
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:9
foreach
6Ví dụ trên sẽ xuất ra:
Bạn có thể cung cấp ít phần tử hơn trong danh sách [] so với trong mảng lồng nhau, trong trường hợp đó, các giá trị mảng còn sót lại sẽ bị bỏ qua:list[]:
foreach
1
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:9
foreach
9Ví dụ trên sẽ xuất ra:
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:
Bạn có thể cung cấp ít phần tử hơn trong danh sách [] so với trong mảng lồng nhau, trong trường hợp đó, các giá trị mảng còn sót lại sẽ bị bỏ qua: ¶
Một thông báo sẽ được tạo nếu không có đủ các phần tử mảng để điền vào danh sách []:
foreach
0
foreach
1
foreach
2
foreach
3
foreach
4Sanusi Hassan ¶ ¶
Một thông báo sẽ được tạo nếu không có đủ các phần tử mảng để điền vào danh sách []:
foreach
5
foreach
6
foreach
7
foreach
8Sanusi Hassan ¶ ¶
1 tháng trước
foreach
9
iterable_expression
0
foreach
8