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を書く。

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

コロナの影響でみんな大変だから俺もなんかできること

僕は福井県に住んでいるのですが、戦時中に福井大空襲にあい、その直後に大震災にあってボロボロになった話をおばあちゃんに聞きました。

それでも復活することができ、不死鳥の町と言われるようになりました。

先人達には心から感謝し尊敬します。

リーマンショック、東日本大震災、コロナと数十年に一度と言われる被害が立て続けに起きていますが、僕たちは強いです。

今は苦しいかもしれませんがきっと復活できます。

僕は低学歴ですし小さな小さな粒でしかないですが、プログラミングに関しては必死に勉強し15年以上ごはんにありつけています。

プログラミングを勉強している人の役に立てるほどのスキルはあると思っています。

なので1人でもんもんと悩んでいる若手のエンジニア向けに質問を受け付けることにします。

自宅で待機されている間もパソコンとインターネットがあればプログラミングの勉強はできます。

  • PHP
  • SQL
  • HTML・CSS
  • jQuery

とは言ってもいきなり答えを聞いていたのではなかなか成長できないと思うのです。

なので質問の際には次のことをご連携ください。

  • 何をやりたいか
  • どんなことを調べたか、検索キーワードと参考にしたページのURL
  • 調べた結果どこが分からないか
  • できるなら試したコード

メッセージいはとりあえずTwitterにでもください。

質問はこちら

すぐに返事できないかもしれませんがご了承ください。

コメントを残す

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

CAPTCHA