2015年12月3日

PHP 2次元配列をforeachで表示する

«
»


今回は内容としてはかなり難しいです。
2次元配列をforeachで表示する」を書いていきます。
 
なお、事前に、以下の2つを読んでいることが前提です。
PHP 二重ループ
PHP 配列のループ foreach
 
ではサンプルプログラムを見てみましょう。
 

<?php

$x = array(); 
$y = array(1,3,5,7); //奇数の数値を格納
$z = array(2,4,6,8); //偶数の数値を格納

array_push($x,$y) ; //xにyを追加
array_push($x,$z) ; //xにzを追加

//foreachはfor文の様に繰り返す命令
foreach($x as $row){ //最初は$xの1行目のデータが$rowに入る
	
	//このとき、$rowも配列であることを忘れずに。
	
	foreach($row as $data){ //$rowの先頭要素から取得していく
		echo $data;
		echo "<br>";
	}

}

実行結果

PHP 2次元配列 foreach

解説

いかがでしょうか。なぜこのような実行結果になったのかわかりますか?
 
PHP 2次元配列
 
2次元配列は上図の様な表形式で表せます。
外側のforeachでは、行の部分を繰返します。1行目、2行目・・・と。
 
サンプルプログラムにおいては、1回目のループで取得した$rowは
実は$yと同じデータということになります。
 
そして、内側のforeachでは、列の部分を繰返します。1列目、2列目・・・と。
従って、これは単純に$yをforeachで表示しているのと同じことになります。
 
ここまでの説明ですぐに理解できるのであれば、ここまでの内容をかなりよく
理解できていると思います。
 
ただし、私も含めて多くの人が1回で理解するのは難しいと思います。
なので、そういう方はここでもう一度復習しておきましょう。
特に以下の2つは抑えておきましょう。
PHP 二重ループ
PHP 配列のループ foreach

【関連する記事】