Hướng dẫn foreach loop inside foreach loop php - vòng lặp foreach bên trong vòng lặp foreach php

Tôi có hai vòng lặp foreach. Trong danh sách menu Foreach Loop đầu tiên và vòng lặp Foreach thứ hai là Loop cơ sở dữ liệu. Vì vậy, tôi muốn so sánh đầu tiên là phím foreach với giá trị foreach thứ hai kết quả mảng foreach đầu tiên được hiển thị

Array ( [master/city] => City [master/national_holiday] => National Holiday [master/operator_comments] => Operator Comments [master/sensors] => Sensors )

và kết quả mảng foreach thứ hai

Array ( [0] => Array ( [menu_url] => monitoring/tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [1] => Array ( [menu_url] => monitoring/serach_tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [2] => Array ( [menu_url] => master/national_holiday [menu_category] => monitoring [read] => 1 [write] => 0 ) )

Tôi cố gắng sử dụng mã này nhưng không hoạt động tốt

foreach( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } }

Bạn có thể đề xuất sai lầm của tôi là gì.

Mã thực của tôi sử dụng trong chế độ xem

<?php $i = 1; foreach($first_array as $k => $val) { ?> <tr> <td>{{ $i }}</td> <td class="mailbox-name">{{ $val }}</td> <?php foreach ($edit_rights['role_rights'] as $rights) { ?> <td><input type="checkbox" class="master_read" name="menu_master_read[]" <?php if ($rights['menu_url'] == $k) { echo 'checked'; } else {echo ''; }?> value="{{ $k }}"></td> <td><input type="checkbox" class="master_write" name="menu_master_write[]" value="{{ $k }}"></td> </tr> <?php } $i++; } ?> </tr>

(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 Array ( [0] => Array ( [menu_url] => monitoring/tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [1] => Array ( [menu_url] => monitoring/serach_tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [2] => Array ( [menu_url] => master/national_holiday [menu_category] => monitoring [read] => 1 [write] => 0 ) ) 0 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.

Array ( [0] => Array ( [menu_url] => monitoring/tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [1] => Array ( [menu_url] => monitoring/serach_tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [2] => Array ( [menu_url] => master/national_holiday [menu_category] => monitoring [read] => 1 [write] => 0 ) ) 3

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:

Array ( [0] => Array ( [menu_url] => monitoring/tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [1] => Array ( [menu_url] => monitoring/serach_tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [2] => Array ( [menu_url] => master/national_holiday [menu_category] => monitoring [read] => 1 [write] => 0 ) ) 6

Array ( [0] => Array ( [menu_url] => monitoring/tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [1] => Array ( [menu_url] => monitoring/serach_tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [2] => Array ( [menu_url] => master/national_holiday [menu_category] => monitoring [read] => 1 [write] => 0 ) ) 7

Array ( [0] => Array ( [menu_url] => monitoring/tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [1] => Array ( [menu_url] => monitoring/serach_tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [2] => Array ( [menu_url] => master/national_holiday [menu_category] => monitoring [read] => 1 [write] => 0 ) ) 8

Có thể lặp lại giá trị của mảng không đổi bằng cách tham khảo:

Array ( [0] => Array ( [menu_url] => monitoring/tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [1] => Array ( [menu_url] => monitoring/serach_tickets [menu_category] => monitoring [read] => 1 [write] => 1 ) [2] => Array ( [menu_url] => master/national_holiday [menu_category] => monitoring [read] => 1 [write] => 0 ) ) 9

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ụng foreach( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 1.

Một số ví dụ khác để chứng minh việc sử dụng:

foreach( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 2

foreach( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 3

foreach( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 4

Giả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( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 5

foreach( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 3

foreach( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 7

Ví 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( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 5

foreach( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 3

<?php $i = 1; foreach($first_array as $k => $val) { ?> <tr> <td>{{ $i }}</td> <td class="mailbox-name">{{ $val }}</td> <?php foreach ($edit_rights['role_rights'] as $rights) { ?> <td><input type="checkbox" class="master_read" name="menu_master_read[]" <?php if ($rights['menu_url'] == $k) { echo 'checked'; } else {echo ''; }?> value="{{ $k }}"></td> <td><input type="checkbox" class="master_write" name="menu_master_write[]" value="{{ $k }}"></td> </tr> <?php } $i++; } ?> </tr> 0

Ví 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( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 5

foreach( $first_array as $key => $value) { foreach( $second_array as $second ) { if ($second['value'] == $key) { echo "Hi"; } } } 3

<?php $i = 1; foreach($first_array as $k => $val) { ?> <tr> <td>{{ $i }}</td> <td class="mailbox-name">{{ $val }}</td> <?php foreach ($edit_rights['role_rights'] as $rights) { ?> <td><input type="checkbox" class="master_read" name="menu_master_read[]" <?php if ($rights['menu_url'] == $k) { echo 'checked'; } else {echo ''; }?> value="{{ $k }}"></td> <td><input type="checkbox" class="master_write" name="menu_master_write[]" value="{{ $k }}"></td> </tr> <?php } $i++; } ?> </tr> 3

Ví 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 ():

<?php $i = 1; foreach($first_array as $k => $val) { ?> <tr> <td>{{ $i }}</td> <td class="mailbox-name">{{ $val }}</td> <?php foreach ($edit_rights['role_rights'] as $rights) { ?> <td><input type="checkbox" class="master_read" name="menu_master_read[]" <?php if ($rights['menu_url'] == $k) { echo 'checked'; } else {echo ''; }?> value="{{ $k }}"></td> <td><input type="checkbox" class="master_write" name="menu_master_write[]" value="{{ $k }}"></td> </tr> <?php } $i++; } ?> </tr> 4

<?php $i = 1; foreach($first_array as $k => $val) { ?> <tr> <td>{{ $i }}</td> <td class="mailbox-name">{{ $val }}</td> <?php foreach ($edit_rights['role_rights'] as $rights) { ?> <td><input type="checkbox" class="master_read" name="menu_master_read[]" <?php if ($rights['menu_url'] == $k) { echo 'checked'; } else {echo ''; }?> value="{{ $k }}"></td> <td><input type="checkbox" class="master_write" name="menu_master_write[]" value="{{ $k }}"></td> </tr> <?php } $i++; } ?> </tr> 5

<?php $i = 1; foreach($first_array as $k => $val) { ?> <tr> <td>{{ $i }}</td> <td class="mailbox-name">{{ $val }}</td> <?php foreach ($edit_rights['role_rights'] as $rights) { ?> <td><input type="checkbox" class="master_read" name="menu_master_read[]" <?php if ($rights['menu_url'] == $k) { echo 'checked'; } else {echo ''; }?> value="{{ $k }}"></td> <td><input type="checkbox" class="master_write" name="menu_master_write[]" value="{{ $k }}"></td> </tr> <?php } $i++; } ?> </tr> 6

<?php $i = 1; foreach($first_array as $k => $val) { ?> <tr> <td>{{ $i }}</td> <td class="mailbox-name">{{ $val }}</td> <?php foreach ($edit_rights['role_rights'] as $rights) { ?> <td><input type="checkbox" class="master_read" name="menu_master_read[]" <?php if ($rights['menu_url'] == $k) { echo 'checked'; } else {echo ''; }?> value="{{ $k }}"></td> <td><input type="checkbox" class="master_write" name="menu_master_write[]" value="{{ $k }}"></td> </tr> <?php } $i++; } ?> </tr> 7

<?php $i = 1; foreach($first_array as $k => $val) { ?> <tr> <td>{{ $i }}</td> <td class="mailbox-name">{{ $val }}</td> <?php foreach ($edit_rights['role_rights'] as $rights) { ?> <td><input type="checkbox" class="master_read" name="menu_master_read[]" <?php if ($rights['menu_url'] == $k) { echo 'checked'; } else {echo ''; }?> value="{{ $k }}"></td> <td><input type="checkbox" class="master_write" name="menu_master_write[]" value="{{ $k }}"></td> </tr> <?php } $i++; } ?> </tr> 8

Sanusi Hassan ¶

29 ngày trước

<?php $i = 1; foreach($first_array as $k => $val) { ?> <tr> <td>{{ $i }}</td> <td class="mailbox-name">{{ $val }}</td> <?php foreach ($edit_rights['role_rights'] as $rights) { ?> <td><input type="checkbox" class="master_read" name="menu_master_read[]" <?php if ($rights['menu_url'] == $k) { echo 'checked'; } else {echo ''; }?> value="{{ $k }}"></td> <td><input type="checkbox" class="master_write" name="menu_master_write[]" value="{{ $k }}"></td> </tr> <?php } $i++; } ?> </tr> 9

foreach (iterable_expression as $value) statement foreach (iterable_expression as $key => $value) statement 0

foreach (iterable_expression as $value) statement foreach (iterable_expression as $key => $value) statement 1

foreach (iterable_expression as $value) statement foreach (iterable_expression as $key => $value) statement 2

Okafor Chiagozie ¶

25 ngày trước

foreach (iterable_expression as $value) statement foreach (iterable_expression as $key => $value) statement 3

foreach (iterable_expression as $value) statement foreach (iterable_expression as $key => $value) statement 4

foreach (iterable_expression as $value) statement foreach (iterable_expression as $key => $value) statement 2

Bạn có thể có một vòng lặp foreach bên trong một vòng lặp foreach?

Một tính năng quan trọng của foreach là nhà điều hành %: %. Tôi gọi đây là toán tử làm tổ vì nó được sử dụng để tạo các vòng foreach lồng nhau.Giống như các nhà khai thác % và % dopar %, nó là một toán tử nhị phân, nhưng nó hoạt động trên hai đối tượng foreach. I call this the nesting operator because it is used to create nested foreach loops. Like the %do% and %dopar% operators, it is a binary operator, but it operates on two foreach objects.

Chúng ta có thể sử dụng cho vòng lặp bên trong Foreach Loop trong PHP không?

Chúng ta cũng có thể sử dụng một vòng lặp bên trong một vòng khác cho vòng lặp.Dưới đây là một ví dụ đơn giản về lồng nhau cho các vòng.. Here is a simple example of nested for loops.

Sự khác biệt giữa vòng lặp và vòng lặp trong PHP là gì?

Một biến được khởi tạo với một giá trị.Biến phải tuân theo điều kiện mà nó được so sánh.Bộ đếm vòng lặp tăng/giảm.... PHP ..

Chúng ta sử dụng ở đâu cho Loop và Foreach trong PHP?

Vòng lặp foreach chỉ hoạt động trên các mảng và được sử dụng để lặp qua từng cặp khóa/giá trị trong một mảng.

Chủ đề