5.配列を使ってみよう

今回は、配列について解説していきます。

配列の書き方

sample/index.php
<?php

$fruits = array('バナナ', 'りんご', 'みかん');

var_dump($fruits);

配列(array)は複数のデータを入れられる型です。

var_dumpの出力をみると以下のようになります。

[0]=> string(9) "バナナ" [1]=> string(9) "りんご" [2]=> string(9) "みかん"

配列の0番目に「バナナ」、1番目に「りんご」、2番目に「みかん」が入っていることが分かります。

プログラミングでは、連番は1からではなく0から始まります。

配列の中身を取り出したい時は、以下のように書きます。

sample/index.php
<?php

$fruits = array('バナナ', 'りんご', 'みかん');

echo $fruits[0]; // バナナ

echo $fruits[2]; // みかん

括弧[]の中に数字を入れて値を取得できます。

配列は以下のように省略した形で書くこともできます。

sample/index.php
<?php

$fruits = ['バナナ', 'りんご', 'みかん'];

配列に要素を追加したい場合は、以下のように書きます。

sample/index.php
<?php

$fruits = ['バナナ', 'りんご', 'みかん'];

$fruits[] = 'スイカ';

var_dump($fruits);

$array[] = 追加したい要素の形で要素を追加できます。

ブラウザで表示を確認すると、$fruitsにスイカが追加されているのが分かります。

連想配列

連想配列は、キーと値のセットです。

sample/index.php
<?php

$fruits = array(
    'banana' => 'バナナ',
    'apple' => 'りんご',
    'orange' => 'みかん'
);

var_dump($fruits);

配列の中に、'key' => 'value'の形のデータが入っています。

ブラウザで出力を確認すると、配列の中身は以下のような内容で表示されています。

["banana"]=> string(9) "バナナ" ["apple"]=> string(9) "りんご" ["orange"]=> string(9) "みかん"

連想配列の値を取得するには、以下のように書きます。

$fruits['apple']

index.phpを以下のように書き換えてみてください。

sample/index.php
<?php

$fruits = array(
    'banana' => 'バナナ',
    'apple' => 'りんご',
    'orange' => 'みかん'
);

echo $fruits['apple'];

ブラウザで表示を確認すると、「りんご」と表示されているはずです。

値の上書き

キーに対応する値を上書きしたい場合は、以下のように書きます。

sample/index.php
<?php

$fruits = array(
    'banana' => 'バナナ',
    'apple' => 'りんご',
    'orange' => 'みかん'
);

$fruits['orange'] = 'オレンジ';

echo $fruits['orange'];

ブラウザで表示を確認すると、「オレンジ」と表示されます。

データの追加

配列にデータを追加したい場合は、以下のように書きます。

sample/index.php
<?php

$fruits = array(
    'banana' => 'バナナ',
    'apple' => 'りんご',
    'orange' => 'みかん'
);

$fruits['grape'] = 'ぶどう';

var_dump($fruits);

ブラウザで表示を確認すると、["grape"]=> "ぶどう"が追加されているのが分かります。

多次元配列

配列の中に配列を入れることができます。このような配列を多次元配列と言います。

sample/index.php
<?php

$foods = array(
    array('寿司', 'すき焼き', '天ぷら'),
    array('麻婆豆腐', '餃子', 'ラーメン'),
);

var_dump($foods);

このような配列の値を取得したい場合は、以下のように書きます。

sample/index.php
<?php

$foods = array(
    array('寿司', 'すき焼き', '天ぷら'),
    array('麻婆豆腐', '餃子', 'ラーメン'),
);

echo $foods[1][2];

ブラウザで表示を確認すると、1番目の配列の、2番目にある「ラーメン」が表示されます(順番は0番目から始まる点に注意してください)。

次に、連想配列の多次元配列を書いてみましょう。

sample/index.php
<?php

$foods = array(
    'japanese' => array(
        'sushi' =>'寿司',
        'sukiyaki' => 'すき焼き',
        'tempura' => '天ぷら',
    ),
    'italian' => array(
        'pizza' => 'ピザ',
        'pasta' => 'パスタ',
    ),
);

var_dump($foods);

このような配列の値を取得したい場合は、以下のように書きます。

sample/index.php
<?php

$foods = array(
    'japanese' => array(
        'sushi' =>'寿司',
        'sukiyaki' => 'すき焼き',
        'tempura' => '天ぷら',
    ),
    'italian' => array(
        'pizza' => 'ピザ',
        'pasta' => 'パスタ',
    ),
);

echo $foods['japanese']['tempura'];

ブラウザに「天ぷら」と表示されます。

このような配列にデータを追加したい場合は、以下のように書きます。

sample/index.php
<?php

$foods = array(
    'japanese' => array(
        'sushi' =>'寿司',
        'sukiyaki' => 'すき焼き',
        'tempura' => '天ぷら',
    ),
    'italian' => array(
        'pizza' => 'ピザ',
        'pasta' => 'パスタ',
    ),
);

$foods['mexican'] = array(
    'tacos' => 'タコス',
    'burrito' => 'ブリトー',
);

var_dump($foods);