【これだけ】PHPの配列をfor文で取り出す方法【現役エンジニアが解説】

PROGRAM

今回は、PHPの配列をfor文で取り出す方法について、配列と連想配列に分け、簡単に解説していきます。

配列

まずは以下のような配列があるとしましょう。

$names = array("山田","田中","髙橋");

この配列の各要素の値を取り出すためにはループ処理が必要になります。

そこでfor文が登場することになり、特に要素の数がわからない場合や多い場合に活躍します。

for ($i=0;$i<count($names);$i++) {
    echo $names[$i];
}

配列の要素の中身を取り出す場合には変数名の後ろに「[]」を付けて、その中で数字を指定して取り出します。

for文に任せると、数字はカウンタ変数で順番に取得することができますので、これをはめて、各要素を取り出すように回していきます。

for文ではカウンタ変数の始まりと終わりの値を指定する必要がありますが、終わりの値がわからない場合はcount変数を使うことで、その変数の要素の数がわかり、終わりの値を指定することができます。

連想配列

今度は配列ではなく、以下のような連想配列があることを想定しましょう。

$member = array('name'=>"山田",'age'=>"24",'gender'=>"男性");

連想配列は数字で仕切られて値が格納されているのではなく、キー文字列で仕切られているのでした。

連想配列の取り出し方は配列と同じように「[]」を付けてキー文字列を指定するだけで、ループ処理で取り出すことも多いです。

連想配列の値を順番に取り出す場合は、数字で要素を指定しないため、for文ではなく、foreach文でループ処理をすることになります。

foreach ($member as $key=>$value) {
    echo $member[$key]; // 「echo $value;」も同じ
}

foreach文では各キー文字列(名前)を順番に取得してくれるので、これをはめていくことで値を取り出すことができますが、「$key=>$value」と記載すれば、$valueだけで取り出すことも可能です。

配列の中の連想配列

データベースやWebAPIと連携する際に最も多いデータ構造が、以下のように配列の中に連想配列があるケースです。

$members = array(
    array('name'=>"山田",'age'=>"24",'gender'=>"男性"),
    array('name'=>"田中",'age'=>"26",'gender'=>"女性"),
    array('name'=>"髙橋",'age'=>"27",'gender'=>"女性")
);

このエクセルのようなデータ構造のデータを順番に取り出していくためには、外側が配列のため、まずはfor文を使います。

for ($i=0;$i<count($members);$i++) {
    foreach ($members[$i] as $key=>$value) {
        echo $members[$i][$key]; // 「echo $value;」も同じ
    }
}

for文でカウンタ変数を使うことで各要素の連想配列にアクセスすることができますが、さらにその連想配列の中身を取り出すためには上記のようにforeach文を使います。

上記のサンプルコードは改行等は一切していなく、出力後は非常に見づらくなってしまいますが、順番に取り出す方法については、この方法を使って頂ければ問題ないでしょう。