PHPでは、配列を使用してさまざまな処理が可能です。
この記事では、
・foreach文で配列をループする
・for文で配列をループする
・while文で配列をループする
という基本的な内容から、
・配列の値をループで格納する方法
などの応用的な使い方に関しても解説していきます。
今回はそんな配列のループ方法について、わかりやすく解説します!
foreach文で配列をループする
配列の全ての要素をループで回して取得する場合、foreach文を使用すれば配列を簡単にループで回すことができます。
foreach文は、引数に配列名と配列の要素を取得するための変数を指定します。
foreach( $配列名 as $値)
以下にforeach文を使用して配列をループで回す方法を記述します。
<?php $fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple']; foreach($fruits as $value){ echo $value; echo '<br>'; } ?>
実行結果 apple orange melon banana pineapple
連想配列をループする方法
連想配列をループする場合は、1次元配列のforeach文と指定方法が異なり、引数を追加する必要があります。
連想配列をforeachで取得するには、連想配列を取得するためのキーと値を両方指定します。
foreach( $配列名 as $キー名 => $値)
以下にforeach文を使用して連想配列をループで回す方法を記述します
<?php $fruits = [0=>'apple', 1=>'orange', 2=>'melon', 3=>'banana', 4=>'pineapple']; foreach($fruits as $key => $value){ echo 'key : '.$key; echo '<br>'; echo ' value : '.$value; echo '<br>'; } ?>
実行結果 key : 0 value : apple key : 1 value : orange key : 2 value : melon key : 3 value : banana key : 4 value : pineapple
for文で配列をループする
for文で配列を回す場合は、配列の要素数をcount関数で取得して条件式に指定し、値を1つずつインクリメントする方法が基本的な方法です。
for (初期化式; 条件式; 変化式)
以下にfor文を使用して配列をループする方法を記述します。
<?php $fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple']; for ($i = 0 ; $i < count($fruits); $i++){ echo $fruits[$i]; echo '<br>'; } ?>
実行結果 apple orange melon banana pineapple
連想配列をループする方法
連想配列をfor文で使用するためには、for文の中でlist関数とeach関数を使用する必要があります。
list関数は引数で指定したキーと値を取得し、指定した連想配列のキーと値のペアを返すeach関数を使用して取り出します。
list( $キー, $排列 ) = each( $配列名 )
each関数はPHP7.2.0では非推奨となっています。そのため、よほどのことが無い限りは連想配列のループ処理は、foreach文を使用するようにしましょう。
以下にfor文を使用して連想配列をループする方法を記述します。
<?php $fruits = [0=>'apple', 1=>'orange', 2=>'melon', 3=>'banana', 4=>'pineapple']; for ($i = 0 ; $i < count($fruits); $i++){ list( $key, $value ) = each( $fruits ); echo 'key : '.$key; echo '<br>'; echo ' value : '.$value; echo '<br>'; } ?>
実行結果 key : 0 value : apple key : 1 value : orange key : 2 value : melon key : 3 value : banana key : 4 value : pineapple
while文で配列をループする
while文で配列を回す場合は、while文の条件式で配列を回すための式を記述する必要があります。
while(条件式): 処理 endwhile;
while文にはさまざまな条件式が使用できますが、for文のように配列の要素数がカウント用変数の値以下だったら、ループ処理を実行するような式を記述するのが一般的です。
しかし、for文のようにカウント用変数を式の中でインクリメントしないので、while文の処理の中で、カウント用変数をインクリメントする必要があります。
以下にwhile文を使用して配列をループする方法を記述します。
<?php $fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple']; $count = 0; while ($count <= count($fruits)): echo $fruits[$count]; echo '<br>'; $count++; endwhile; ?>
実行結果 apple orange melon banana pineapple
連想配列をループする方法
while文で連想配列を回す場合は、for文で紹介したようにlist関数で引数で指定したキーと値を取得し、指定した連想配列のキーと値のペアを返すeach関数を使用して取り出します。
しかし、上述したようにeach関数はPHP7.2.0では非推奨となっていますで、連想配列はよほどのことが無い限りforeach文を使用するようにしましょう。
以下にwhile文を使用して連想配列をループする方法を記述します。
<?php $fruits = [0=>'apple', 1=>'orange', 2=>'melon', 3=>'banana', 4=>'pineapple']; $count = 0; while (list( $key, $value ) = each( $fruits )): echo 'key : '.$key; echo '<br>'; echo ' value : '.$value; echo '<br>'; $count++; endwhile; ?>
実行結果 key : 0 value : apple key : 1 value : orange key : 2 value : melon key : 3 value : banana key : 4 value : pineapple
配列の値をループで格納する方法
配列の値をループで格納する方法については、以下の記事で詳細に解説しています。
配列についてもっと詳しく知りたい方へ
配列のさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
まとめ
ここでは、配列の値をループで取得するさまざまな方法について、解説しました。
配列を扱った処理は、実際の開発でもよく使用しますので、この機会にぜひ覚えておきましょう。
もし、配列をループで回す方法を忘れてしまったら、この記事を思い出してくださいね!