PHP の多次元配列で foreach ループを使用する

Subodh Poudel 2023年1月30日
  1. PHP で foreach ループを使用して多次元配列の要素にアクセスする
  2. PHP でネストされた foreach ループを使用して多次元配列の要素にアクセスする
PHP の多次元配列で foreach ループを使用する

このチュートリアルでは、PHP の多次元配列を紹介します。また、多次元配列で foreach ループを使用する方法も学習します。

PHP で foreach ループを使用して多次元配列の要素にアクセスする

多次元配列には、配列内に 1つまたは複数の配列が含まれます。

配列は 2 次元、3 次元にすることができ、より多くのレベルの次元を持つことができます。アレイの複雑さは次元の増加とともに増加し、アレイの管理は困難です。

2 次元配列にアクセスするには 2つのインデックスが必要であり、3 次元配列にアクセスするには 3つのインデックスが必要です。この記事では、2 次元配列について説明します。

次のコード例は、2 次元配列を作成します。

$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 変数に反復ごとの現在の配列項目の値が含まれます。ループは、配列の最後の要素まで続きます。

2 次元配列の場合、foreach ループを使用して、最初の反復で最初のネストされた配列にアクセスできます。

たとえば、上記で作成した配列が $bikes である foreach ループを記述します。次の例に示すように、要素を $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 ループを使用して 2 次元配列の要素にアクセスする方法について説明します。配列内のキーと値のペアに対して foreach ループを使用できます。

その構文を以下に示します。

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

このようにして、foreach ループを使用して、配列内の各要素のキーと値にアクセスできます。

ネストされた foreach ループを作成して、2 次元配列内のすべてのキーと値のペアにアクセスできます。このメソッドのデモンストレーションには、上記で作成した配列を使用します。

たとえば、$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
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