こんにちは。
最近ジューサーを購入し、毎朝スムージーを作って優雅な生活に一歩近づいただーだいです。
phpの初学者が必ず勉強するfor文ですが、使い方がいまいち理解できなかったり、配列から要素を取り出す方法が分からなくて悩んでいる方もいるのではないでしょうか。
本記事ではfor文とforeach文を利用して、ループ処理で配列から要素を1つずつ取り出す方法をわかりやすく解説します。
また、for文、foreach文と同じくループ処理を行うwhileを使った配列処理も解説しているので、ループ処理で躓いている方はチェックしてみてください。
目次
【php】forの基本構文を解説
for文は、下記のように3つの条件によって特定の条件を繰り返すときに使用されます。
1 2 3 |
for (条件1; 条件2; 条件3) { //繰り返したい処理を記述 } |
- 条件1:変数を定義
- 条件2:for文を繰り返し実行する条件を記述
- 条件3:条件2の条件がtrueなら変数の数値を1ずつ追加
for文の条件式を用いた例が下記になります。
1 2 3 4 5 |
<?php for ($i = 0; $i < 5; $i++) { echo "for文で" . $i . "回ループしました。\n"; } ?> |
- 条件1で変数に0を代入する
- 条件2で変数の値が5より小さい場合、for文内のプログラミングを実行する
- 条件2の実行が終わると、条件3で変数に+1を追加する。
上記をループすることで変数の数字が増えていき、5と同じ数値になるまで繰り返されます。
実行結果がこちらです
for文の公式は配列を操作する際に必須なので覚えておきましょう。
【php】for文で配列(array)から要素を取り出す方法
for文で配列から要素を1つずつ取り出すには、配列の要素数を数えるcount関数を使用します。
count関数で取得した配列の数だけループする処理を、参考コードを用いて説明します。
1 2 3 4 5 6 7 |
<?php $test = ['one', 'two', 'tree', 'four', 'five']; for ($i = 0 ; $i < count($test); $i++){ echo $test[$i] . "回目のループです\n"; } ?> |
count関数の引数に配列が代入されたtest変数を入力することで、配列の数を取得しています。$iの数が配列の数と同じになるまで処理を繰り返す処理になっています。
【php】foreach文で配列(array)から要素を取り出す方法
foreachは、配列に入っている要素を一つずつ取り出す処理です。for文と違って数字せず、配列内の要素を順番に取り出す処理でよく使用されます。
foreachの基本構文は下記になります。
1 2 3 4 5 |
<?php foreach (配列の入った変数 as 要素が入った変数){ //ループしたい処理を記述 }; ?> |
asは「〜として」という意味があり、配列の入った変数をforeach文でループするための変数として変換しているとイメージするとよいでしょう。
基本構文を使って、配列内の要素を取り出す方法を参考コードを用いて解説します。
1 2 3 4 5 6 7 |
<?php $test = ['1', '2', '3', '4', '5']; foreach ($test as $value){ echo $value. "つ目の要素です\n"; }; ?> |
1~5という数字が入った$test変数を$valueに変換して一つずつ取り出しています。実行結果は下記になります。
【php】foreach文で連想配列(array)を1つずつ取り出す方法
連想配列は、配列の数を示すインデックス番号の代わりに名前をつけて管理する配列のことです。
foreach文では、ループ処理を使って連想配列に入っているそれぞれの値を取得できます。そのために下記の基本構文を使用します。
1 2 3 4 5 |
<?php foreach (配列の入っている変数 as 連想配列のキー => 連想配列の値){ //実行したい処理を記述 } ?> |
参考コードを使用して連想配列から値を取り出す処理を、参考コードを用いて解説します。
1 2 3 4 5 6 7 |
<?php $animal = ['dog' => '犬','cat' => '猫','bird' => '鳥','cow' => '牛']; foreach ($animal as $key => $value){ echo $key. "の値は、". $value. "です。\n"; } ?> |
$animalという連想配列の入った変数を、インデックス番号の代わりに名前をつけた部分($key)とその値になる部分($value)に分けてループ処理しています。
参考コードの実行結果は下記になります。
phpのwhile文を使用して配列(array)を操作する
for文やforeach文と同じくループ処理ができるwhile文を使って配列を操作する方法を解説します。while文の基本構文は下記になります。
1 2 3 |
while(ループする条件): //ループしたい処理を記述 endwhile; |
配列の数だけループする場合は、for文と同じくcount関数を使用して配列の数を取得します。while文を使用して実際に配列を操作してみましょう。
1 2 3 4 5 6 7 8 |
<?php $test = ['one', 'two', 'tree', 'four', 'five']; $count = 0; while ($count < count($test)): echo $test[$count]. "\n"; $count++; endwhile; ?> |
$countという変数を作成し、0を代入して初期化します。
1 |
$count = 0; |
count関数で$test変数内の配列数を取得し、その数だけループします。
1 |
while ($count < count($test)): |
処理の最後に$count変数に+1を追加して指定する値を増やしていきます。この処理をしないと永遠にループしてしまうので必ず記述しましょう。
1 |
$count++; |
【覚えておくと便利!】array_pushを使用して配列を追加する方法
array_push関数を使用すると、配列の入っている変数に要素を追加できます。array_pushの基本構文は下記になります。
1 |
array_push(配列の入った変数,追加する要素,追加する要素2); |
上記のように複数の要素を追加できます。基本構文を使用して実際に配列に要素を追加します。
1 2 3 4 5 |
<?php $test = ['one', 'two', 'tree', 'four', 'five']; array_push($test,"six","seven"); var_dump($test); ?> |
array_pushを使用して変数$testの配列に、「six」と「seven」を追加しています。実行結果は下記になります。
まとめ
いかがでしたか?
本日はphpで使用するfor文とforeach文を使用して配列を操作する方法について解説しました。
for文やforeach文を使用して配列から値を取り出すには、配列の仕組みを理解することが大切です。
for文やforeach文でループ処理するには、次の事柄を押さえておきましょう。
- 配列にはインデックス番号という0から配列を数える番号が割り振られている
- for文とwhile文は、処理後にインクリメント(変数++)の記述を忘れないようにする
- 多次元配列のループ処理はforeachが適切
是非参考にしてみてくださいね。