Hướng dẫn nested foreach loop in php - vòng lặp foreach lồng nhau trong php

Tôi có mảng sau:

Array ( 
  [1] => Array ( 
    [spubid] => A00319 
    [sentered_by] => pubs_batchadd.php
    [sarticle] => Lateral mixing of the waters of the Orinoco, Atabapo
    [spublication] => Acta Cientifica Venezolana
    [stags] => acta,confluence,orinoco,rivers,venezuela,waters
    [authors] => Array ( 
      [1] => Array ( 
        [stype] => Author 
        [iorder] => 1 
        [sfirst] => A
        [slast] => Andersen ) 
      [2] => Array ( 
        [stype] => Author 
        [iorder] => 2 
        [sfirst] => S.
        [slast] => Johnson ) 
      [3] => Array ( 
        [stype] => Author 
        [iorder] => 3 
        [sfirst] => J. 
        [slast] => Doe ) 
      ) 
    ) 
  )

Tôi đang sử dụng một foreach () để đi qua các yếu tố ở mảng bên ngoài nhưng khi nói đến việc phun ra danh sách các tác giả, tôi đang gặp vấn đề. Cụ thể là vấn đề xuất hiện từng (nhiều) lần vì sự làm tổ của Crazy For (). Điều gì sẽ là một cách tiếp cận tốt hơn so với các vòng lặp foreach () Nesting () trong ví dụ này?

Cập nhật (với giải pháp)

Đây là vòng lặp tôi giải quyết, một chút lộn xộn (IMHO) nhưng nó hoạt động:

$sauthors = NULL;
$stitle = NULL;

foreach($apubs as $apub)
{
  $stitle = $apub['sarticle'];
  foreach($apub as $svar=>$sval)
  {
    if($svar === "authors")
    {
      foreach($sval as $apeople)
      {
        $sauthors .= $apeople['slast'].", ".$apeople['sfirst']."; ";
      }
    }
  }
  echo "$sauthors
\n$stitle
\n"; }

Có thể lặp lại vòng lặp?

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.
Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều
Ví dụ về các vòng lặp forops Loops For-Arech Loop có thể được lồng như thường lệ cho Loop. Dưới đây là ví dụ cho vòng lặp For-Elect lồng nhau mà lặp lại mảng 2 chiều.
/** cấu trúc
foreach (mảng là giá trị) {
foreach (mảng là giá trị) {
foreach (mảng là giá trị) {
foreach (mảng là giá trị) {
Bản tường trình;
}color= array( "M", "XL", "XXL");
}fruit = array( "Tshirt", "Shoes", "glass");
**/ ($color as $c){
$ color = mảng ("m", "xl", "xxl"); ($fruit as $f){
$ fruit = mảng ("áo phông", "giày", "thủy tinh"); "this is a $c$f .
";
foreach ($ coloras $ c) {
foreach ($ fruitas $ f) {
echo "Đây là một $ c $ f.";
}
}
/** đầu ra
Đây là một chiếc áo thun m.
Đây là một đôi giày M.
Đây là một ly m.
Đây là một chiếc áo thun XL.
Đây là một đôi giày XL.
Đây là một ly XL.
Bản tường trình;
}

Php mảng foreach

Foreach Array là một cấu trúc trong PHP cho phép lặp lại các mảng một cách dễ dàng.

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu cú pháp của cấu trúc Foreach Loop và trải qua các tình huống sau

  1. Loop foreach để lặp qua mảng PHP của các số.
  2. Loop foreach để lặp lại các cặp giá trị khóa của mảng PHP.
  3. Loop foreach để lặp chỉ các giá trị của mảng PHP với các cặp giá trị khóa.
  4. Nested ForEach Loop để lặp lại trên mảng PHP đa chiều.

Cú pháp - foreach

Cú pháp của foreach () với mảng là

foreach (array_expression as $value) {
    statement(s)
}

Sử dụng cú pháp này, bạn có thể lặp lại các mảng chỉ chứa các giá trị dưới dạng các phần tử hoặc chỉ lặp qua các giá trị của một mảng với các cặp giá trị khóa.

Nếu bạn muốn truy cập cả khóa và giá trị của các cặp giá trị khóa trong mảng với foreach, hãy sử dụng cú pháp sau

foreach (array_expression as $key => $value) {
    statement(s)
}

Bây giờ, bạn có thể truy cập cả khóa và giá trị bằng cách sử dụng biến $ và $ giá trị tương ứng.

Ví dụ - foreach trên mảng số nguyên

Trong chương trình sau, chúng tôi lấy một loạt các số nguyên và lặp lại các yếu tố sử dụng Foreach Loop.

Chương trình PHP

';
}
?>

Đầu ra chương trình

Hướng dẫn nested foreach loop in php - vòng lặp foreach lồng nhau trong php

Ví dụ-mảng foreach-lặp lại các cặp giá trị khóa mảng

Trong chương trình sau, chúng tôi lấy một loạt các số nguyên và lặp lại các yếu tố sử dụng Foreach Loop.

Chương trình PHP

 41,
    "b" => 96,
    "c" => 65
);

foreach ($arr as $key => $value) {
    echo $key . ' - ' . $value;
    echo '
'; } ?>

Đầu ra chương trình

Hướng dẫn nested foreach loop in php - vòng lặp foreach lồng nhau trong php
Ví dụ-mảng foreach-lặp lại các cặp giá trị khóa mảng

Php mảng foreach - lặp lại các yếu tố của mảng

Ví dụ-mảng foreach-lặp lại các giá trị của mảng với các cặp giá trị khóa

Chương trình PHP

 41,
    "b" => 96,
    "c" => 65
);

foreach ($arr as $value) {
    echo $value;
    echo '
'; } ?>

Đầu ra chương trình

Hướng dẫn nested foreach loop in php - vòng lặp foreach lồng nhau trong php

Ví dụ-mảng foreach-lặp lại các cặp giá trị khóa mảng

Php mảng foreach - lặp lại các yếu tố của mảng

Chương trình PHP

 array( 41, 96, 65 ),
    "b" => array( 88, 44, 22 ),
    "c" => array( 12, 23, 34 )
);

foreach ($arr as $key => $value) {
    echo $key . '
'; foreach ($value as $element) { echo $element . ' '; } echo '
'; } ?>

Đầu ra chương trình

Hướng dẫn nested foreach loop in php - vòng lặp foreach lồng nhau trong php

Ví dụ-mảng foreach-lặp lại các cặp giá trị khóa mảng

Php mảng foreach - lặp lại các yếu tố của mảng

Vòng lặp lồng nhau trong PHP là gì?

PHP lồng nhau cho vòng lặp Chúng ta có thể sử dụng cho vòng lặp bên trong cho vòng lặp trong PHP, nó được gọi là lồng nhau cho vòng lặp.Các vòng bên trong chỉ thực thi khi điều kiện vòng ngoài cho điều kiện vòng lặp được tìm thấy đúng.Trong trường hợp bên trong hoặc lồng nhau cho vòng lặp, lồng nhau cho vòng lặp được thực hiện đầy đủ cho một vòng ngoài cho vòng lặp.for loop inside for loop in PHP, it is known as nested for loop. The inner for loop executes only when the outer for loop condition is found true. In case of inner or nested for loop, nested for loop is executed fully for one outer for loop.

Chúng ta có thể sử dụng lồng nhau cho

Ví dụ về các vòng lặp forops Loops For-Arech Loop có thể được lồng như thường lệ cho Loop.Dưới đây là ví dụ cho vòng lặp For-Elect lồng nhau mà lặp lại mảng 2 chiều.for-each loop can be nested like usual for loop. Here is the example for nested for-each loop which iterates 2-dimensional array.

Có thể lặp lại vòng lặp?

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.