在 PHP 中的多維陣列中使用 Foreach 迴圈

Subodh Poudel 2023年1月30日 2022年5月13日
  1. 在 PHP 中使用 foreach 迴圈訪問多維陣列的元素
  2. 在 PHP 中使用巢狀的 foreach 迴圈訪問多維陣列的元素
在 PHP 中的多維陣列中使用 Foreach 迴圈

本教程將介紹 PHP 中的多維陣列。我們還將學習在多維陣列中使用 foreach 迴圈。

在 PHP 中使用 foreach 迴圈訪問多維陣列的元素

多維陣列在陣列中包含一個或多個陣列。

一個陣列可以是二維的,也可以是三維的,並且可以有更多的維度。陣列的複雜性隨著維數的增加而增加,陣列的管理難度很大。

我們需要兩個索引來訪問二維陣列和三個索引來訪問三維陣列。在本文中,我們將討論二維陣列。

下面的程式碼示例建立一個二維陣列。

$bikes = array (
 array("CRF300L",28,19.5),
 array("CBR600RR",70,33),
 array("KTM390 ",40,10)
 );

輸出:

Array
(
 [0] => Array
 (
 [0] => CRF300L
 [1] => 28
 [2] => 19.5
 )

 [1] => Array
 (
 [0] => CBR600RR
 [1] => 70
 [2] => 33
 )

 [2] => Array
 (
 [0] => KTM390 
 [1] => 40
 [2] => 10
 )
)

上面的輸出顯示了 $bikes 陣列的內容。

我們可以看到陣列是數字索引的。我們可以利用 foreach 迴圈來訪問陣列元素。

foreach 迴圈是一個特殊的迴圈,它只對陣列起作用。眾所周知,該陣列包含一對鍵和值; foreach 迴圈用於迴圈遍歷陣列的鍵/值對。

foreach 迴圈的語法如下所示。

foreach($array as $element){
 // statements
}

foreach 迴圈中,$element 變數將包含每次迭代的當前陣列項的值。迴圈一直持續到陣列中的最後一個元素。

在二維陣列的情況下,我們可以使用 foreach 迴圈在第一次迭代中訪問第一個巢狀陣列,依此類推。

例如,編寫 foreach 迴圈,其中陣列是我們在上面建立的 $bikes。將元素寫為 $bike,如下例所示。

在迴圈內部,使用 echo 使用 $bike 變數上的索引顯示巢狀陣列的內容。使用索引為 $bike[0]$bike[1]$bike[2]

示例如下所示。

foreach ($bikes as $bike){
 echo $bike[0]."<br>";
 echo $bike[1]."<br>";
 echo $bike[2]."<br>";
 echo "<br>";
}

輸出:

CRF300L
28
19.5

CBR600RR
70
33

KTM390
40
10

這樣,我們可以使用 foreach 迴圈來訪問多維陣列的元素。

在 PHP 中使用巢狀的 foreach 迴圈訪問多維陣列的元素

在這個方法中,我們將討論如何使用巢狀的 foreach 迴圈訪問二維陣列的元素。我們可以在陣列中的鍵/值對上使用 foreach 迴圈。

它的語法如下所示。

foreach($array as $key=>value){
 // statements
}

通過這種方式,我們可以使用 foreach 迴圈訪問陣列中每個元素的鍵和值。

我們可以建立一個巢狀的 foreach 迴圈來訪問二維陣列中的所有鍵/值對。我們將使用上面建立的陣列來演示此方法。

例如,編寫 $bikes 變數是陣列的 foreach 迴圈。將 $number 變數設定為鍵,將 $bike 變數設定為值。

接下來,在剛剛建立的迴圈中編寫另一個 foreach 迴圈。在巢狀迴圈中,將 $bike 變數寫入一個陣列,並將 $num$value 設定為鍵和值。

在巢狀迴圈中,列印變數 $num$number$value,如下例所示。因此,我們可以使用巢狀的 foreach 迴圈來訪問 PHP 中多維陣列的元素。

示例程式碼:

foreach($bikes as $number => $bike)
 {
 foreach($bike as $num => $value)
 {
 print "Index ".$num." of ".$number." indexed array contains " .$value. "<br>";
 }
 }

輸出:

Index 0 of 0 indexed array contains CRF300L
Index 1 of 0 indexed array contains 28
Index 2 of 0 indexed array contains 19.5
Index 0 of 1 indexed array contains CBR600RR
Index 1 of 1 indexed array contains 70
Index 2 of 1 indexed array contains 33
Index 0 of 2 indexed array contains KTM390
Index 1 of 2 indexed array contains 40
Index 2 of 2 indexed array contains 10
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相關文章 - PHP Array

相關文章 - PHP Loop