【php】foreachで配列の要素全てにループ処理をする

php-foreachphp
書いてる人
あいりゅー

プログラミングを学びながら更新しています。
iPhone/iPad/Mac/Apple WatchなどのApple製品はこちらで主に更新しています。
麻雀の反省をひたすら掲載してるブログもやってます。

あいりゅーをフォローする

このページについて

このページではphpで使えるforeachの使い方解説です。配列に対して簡単にループ処理をさせる事ができます。

foreach

foreachは配列に対してループ処理をさせる事ができます。通常のfor文は式を3つ設定して処理をさせるんですが、配列に対しての処理は若干手間がかかります。その反面、foreachは頼んでいなくても指定した配列内の全ての要素に処理を行ってくれます。

foreach(A as Key => B){
処理内容
}

foreachの構文はこのようになっています。AとB、Keyを指定する必要がありますが

=>B

は省略可能です。省略した場合は若干処理内容が異なるのでその辺りも解説します。

簡単なforeachの使い方

keyを省略する、簡単なforeachの使い方を紹介します。

$a=[1,2,3,4];
foreach ($a as $b) {
echo $b*10;
}

このように書いた場合の処理順序は以下の通りです。

  1. 配列の中身($a)をasの後にある変数($b)に入れる。
  2. $bに対して処理内容を実行する。
  3. この場合はecho $b*10なので、$bの中身全てに対して10を掛けて、その都度表示します。
  4. 配列内にアイテムがまだある場合、同じように順番に値を取り出して10かけて表示します。

これが配列の中にあるアイテムの数だけおこなわれていきます。順番は常に左からというより、配列内に当てられている番号に沿って行われます。

今回の配列(1,2,3,4)の番号は左から0,1,2,3となります。なので計算の順番としては0の1*10、1の2*10、2の3*10、3の4*10という順番になります。実際の実行結果が以下です。

foreach

見やすいように改行タグも含めていますが、計算結果はこのように出力されます。

keyを使うforeach

次はkeyを使うforeachの解説です。keyは連想配列におけるキーであったり、普通の配列の添字になります。

$a=['a'=>10,'b'=>20,'c'=>30];
foreach ($a as $b => $v) {
echo $b;
echo '<br>';
echo $v;
echo '<br>';
}

このように書くと、以下のように処理を行います。

  1. $aの連想配列のキーを$bへ入れます。そして値($v)を設定し、連想配列の値を$vに入れます。
  2. 処理内容の1行目のechoで$bを出力します。これは連想配列のキーを出力します。
  3. 次のehcoは改行タグなので割愛します。その次のechoは$vを出力します。これは連想配列の値を出力します。

これを連想配列内のアイテムの数だけ行います。実際に行うと以下のようになります。

連想配列に対するforeach

連想配列から値だけを取り出したい場合は上記のコードから$vだけを使います。逆にキーだけ使いたい場合は$bを使います。

通常の配列に対してkeyを使うと配列で使用されている添字がそのまま表示されます。

配列に対してforeachでkey

配列の中はabcの3つです。その下のforeachは今までのものと全く同じです。配列内でキーは使っていませんが、配列にそもそも使われている添字が扱われます。なので結果は0→a→1→b→2→cという順番で表示します。

まとめ

foreachは配列の中にある要素に対して順番に処理を行います。普通の配列でも連想配列でもkeyを使った処理を行わせることもできますし、そもそもkeyを使わずに要素のみに処理を与えることもできます。処理内容や用途に合わせて使い分けましょう。

phpの基礎
phpとは?JavaScriptとの違いは?みたいなことから、基本の書き方などを解説。
echoとprint
画面に文字を出力する2種類の言語構造の使い方
変数
phpで使える変数の扱い方などを解説しています。
変数のスコープ(有効範囲)
変数のスコープについての解説です。
var_dump
変数の情報を見ることができる関数
print_r
変数の情報をわかりやすい形式で表示する関数
配列と連想配列
配列と連想配列の書き方と、便利な関数の解説など。
key
連想配列のキーを返してくれます。内部ポインタ関係あり。
count
配列や連想配列の要素数を数えてくれる関数の使い方解説。
ソート関数
配列に対してソートを行う関数の中から、代表的な5つの使い方解説です。
array_reverse
配列の中身の順番を反転させる関数です。
array_chunk
配列を指定した数で分割させるarray_chunk関数の使い方解説です。
array_combine
2つの配列を足して1つの連想配列にする関数です。
array_diff
2つの配列を比較して、存在しない値を出力する関数
array_push
配列に対して後方に要素を追加する関数
array_unshift
配列に対して先頭に要素を追加する関数。
array_shift
配列の先頭の要素を取り出す関数。
array_merge
複数の配列を統合して1次元の配列にする関数
array_intersect
2つの配列を比較して、両方に共通するものを出力する関数
include
includeを使って別のphpファイルを読み込む方法の解説。
if文
if文を使って処理を変更させる方法の解説。
switch文
switch文を使って複数の処理分岐を行わせたい時に使います。
forループ
forループを使って同じ処理を行わせる方法の解説です。
whileループ
whileループを使って同じ処理を行わせる方法の解説と注意点。
do-whileループ
do-whileループを使って同じ処理を行わせる方法の解説です。
foreachループ
foreachループを使って配列内のアイテム全てに処理を行う方法の解説です。
continue
ループ処理の残りをスキップしつつ、ループの先頭に戻る制御構造
ループのネスト構造(入れ子)
ループの中にループを入れる書き方や考え方の解説。
function
functionを使って自作の関数を作成・使用する方法の解説。
引数の種類と書き方解説
functionで扱う引数の種類と書き方を解説
return
returnの使い方と関数での使い方解説。
class
classを作成して変数と関数を1つにまとめる方法と使い方の解説。
constructとdestruct
classのインスタンス作成と同時に処理を行うconstructと、スクリプトの終了と同時に実行するdestructの解説です。
インターフェイス
インターフェイスという用語の解説と、実際の使い方解説
トレイト
コードを再利用するのに便利なトレイトの解説です。
列挙型
プログラム中で使う変数名をあらかじめ定義しておく。そんな感じの型。
PDOを使ってMySQLへ接続
PDOを使ってMySQLへ接続し、データを取得する方法の解説です。
データの加工と表示
PDOでデータベースから取得したデータを加工して表示する方法の解説です。
HTMLフォームのデータ受け取りと表示
HTMLで作ったフォームからのデータの受け取り方法と、その表示方法の解説です。
タイトルとURLをコピーしました