【1-7】図解あり!連想配列の書き方と使い方

<?php
    $fruits = ["りんご", "ぶどう", "もも"];
?>

この配列でももにアクセスする場合は

$fruits[2]というように数字を使いましたね。

今は3つしかないので「何番目か」というのは簡単に指定できますが、

例えば、$fruitsに要素が全部で2000個入っていたらどうでしょう?

$fruitsの1384番目にアクセスして…

とか普通数えていられないですよね。

そんな時、連想配列というのを使うとこの問題が解決します。

連想配列の書き方

連想配列を使うと、例えば「りんご」に「apple」という名前をつけておくことができます。

指定方法は、このようにします。

「’apple’ => ‘りんご’」

こうすることで、今まで「りんご」の位置を数えて0番目だ!ということで、

$fruits[0]

と表現していたのを「りんご」につけた「apple」という名前を使って

$fruits[‘apple’]

と書くことができます。

他の「ぶどう」「もも」にも名前をつけておくと、こんな感じになります。

<?php
    $fruits = ['apple' => 'りんご','grape' => 'ぶどう', 'peach' => 'もも'];
    echo $fruits['apple'];
    echo $fruits['grape'];
    echo $fruits['peach'];
?>

アクセスするときは「配列$fruitsの中にある’apple’」と指定します。

すると「apple」に対応する「りんご」が表示されます。

連想配列は、実は今までの配列と同じ?

一見、連想配列の=>を使ったら複雑になるように見えますが、

実は普通の配列と同じことをやっています。

通常の配列は「=>」を省略した場合、

<?php
    $fruits = [0 => 'りんご',1 => 'ぶどう', 2 => 'もも'];
    echo $fruits[0];
    echo $fruits[1];
    echo $fruits[2];
?>

このように、「0, 1, 2」というようにデフォルトで名前がつくようになっているのです。

そのため「りんご」と言いたい時は「$fruits[0]」のように数字を使って表現できるというようになっています。

ループ(foreach)で全件出力!

<?php
    $fruits = [りんご','ぶどう', 'もも'];
    echo $fruits[0];
    echo $fruits[1];
    echo $fruits[2];
?>

今までこのように、一件ずつ表示させていましたがforeachを使うと一気に表示できます。

<?php
    $fruits = ['りんご','ぶどう', 'もも'];
    foreach($fruits as $item) {
        echo $item;
        echo '<br>';
    }
?>

<出力結果

りんご
ぶどう
もも

foreachの使い方

まず、foreachはループの一種です。

foreachのしくみ

「配列の中から一つ取り出して変数に入れる」
というのを配列の個数分繰り返されます。

1回目のループでは、りんごが取り出されて$itemの中に入ります。
2回目1回目のループでは、ぶどうが取り出されて$itemの中に入ります。
3回目1回目のループでは、ももが取り出されて$itemの中に入ります。

まとめ

  • 連想配列は、要素に名前をつけてその名前でアクセスできるようになる
  • foreachは、配列の要素の個数分ループする。→配列を全件出力するときに便利

コメントを残す

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

CAPTCHA