PHPの連想配列のキーと値をforeachでループしながら取得する方法

PHPで配列や連想配列をforeachでループしながらキーや値を取得する方法です。

 

この記事を読んでいる方は配列の中身を全てループして、1件1件なにかしらの処理をしたいのですよね?

古い記憶をたどると昔はforeachとか無かったと思うんです。Javaには無かっただけかな?

配列は要素数を取得して、for文で要素の数だけループするような書き方でした。

 

foreachを使えば自動的に全てループしてくれてキーと値も取得できます。

これを知ったときは感動でした!笑

今では一般的なんかな?

 

こんな便利なforeachの使い方についてご紹介します。

PHPの連想配列のキーと値をforeachでループしながら取得する方法

foreach ($配列 as $値) {
echo $値;
}

foreach は上記のように書きます。

$配列にループする配列を指定し、中身の値が$値に定義した変数に1つずつセットされます。

上記のコードのように書けば、全ての値が echo により出力されます。

 

foreach ($配列 as $キー => $値) {
echo $キー;
echo $値;
}

キーも取得する場合は上記のように書きます。

これで配列に含まれる全てのキーと値がループされます。

 

連想配列の場合は$キーに文字列のキーがセットされます。

通常の配列の場合はインデックス値がセットされます。

 

簡単ですね!便利すぎて泣けてきます。

多次元配列の場合

多次元配列の場合はどうなるでしょうか。

実際にコードを書いて説明します。

多次元配列の場合は、foreach の中にまたforeachを書くようにして書きます。

このとき注意してほしいのが、2つ目の foreach の as の次に書く値を受け取る変数の変数名が、1つ目と重複しないことです。

これはよくあるミスで、変数名が重複すれば当然前の変数に上書きされてしまいます。

そうなるとバグの元になってしまうのは容易に想像ができますね。

 

is_array() は配列かどうかを判定する関数です。

1つ目のループが配列ならば2つ目のループに入るようにしています。

 

ちなみに上記のものをWEBページに出力すると以下のようになります。

色々なところに旅行したいですね(笑)

まとめ

配列のキーと値を全てループして取得するには foreach を使う。

多次元配列のときは、foreachの中にforeachを書く。

変数名の重複に気をつける。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA