php

【php】配列・連想配列・多次元配列の基本を初心者向けに徹底解説!

phpの配列

 

今回は、phpの基本である「配列」について初心者向けにやさしく解説します。

 

配列とは、複数の値を格納した変数です。

大量のデータを扱いたい場合に使用し、配列の値に番号や名前などのキーを割り振ったり連想配列)、配列の中に配列を入れたり多次元配列)することができます。

この記事では

配列連想配列多次元配列の作り方や使用例などを、イラストを交えて初心者の方に向けて解説しています。

 

できるだけわかりやすく解説するので、ぜひ最後まで読んでみて下さいね!

目次

配列の基本配列の作り方値の取り出し値の追加と上書き初期化と上書き

連想配列の基本多次元配列の基本

 📖目次に戻る

配列の基本

ここでは、配列の作り方や値の取り出し方・上書きの方法など「配列の基本的な操作」について解説します。

 📖目次に戻る

配列の作り方

配列を作る場合は、[](ブラケット)array() を使用して作成します。

複数の値を格納する場合は、値と値の間を「,」(カンマ)で区切ります。

構文 ブラケットの場合

[ 値1 , 値2 , 値3... ]

構文 arrayの場合

array( 値1 , 値2 , 値3... )

 

それでは早速、3つの文字列型のデータ「'りんご'」「'メロン'」「'バナナ'」配列型の変数「fruitsに格納してみましょう。

 </>php

<?php

$fruits = [ 'りんご' , 'メロン' , 'バナナ' ];

print_r($fruits); ?>

ポイント

var_dump」ではなく「print_r」を使用して出力しているのは、出力結果がシンプルで見やすいためです。

ご覧の通り「りんご」「メロン」「バナナ」が順番に格納されているのがわかると思います。

 

ちなみに、出力結果の各値の左側の整数「キー」と言います。

配列の値の「キー」とは、値に付ける名前のようなもので、配列はこの「キー」と「値」のペアを一つの「要素」として扱います。

 

「キー」を指定せずに要素を配列に入れると、要素が追加された順自動で番号が割り振られます

この番号を「インデックス番号」または「添字」と言います。

 

この番号を使うことで、特定の値を取り出したり、上書きしたり、追加することができます。

 

インデックス番号や添字は「0」から加算されるから注意してね。

 📖目次に戻る

値の取り出し

配列の中から特定の値取り出す場合は「キー」を使用します。

値の取り出しは、配列の入った変数の後に取り出したい値のインデックス番号の書いた[](ブラケット)を記述して行います。

構文

$配列名 [ インデックス番号]

 

この構文を使って、先ほどの3つの値の入った配列から「メロン」を取り出してみましょう。

 </>php

<?php

$fruits = [ 'りんご' , 'メロン' , 'バナナ' ];

print_r($fruits[1]); ?>

3つの値の中から、「メロン」のみを取り出せていますね。

ポイント

値を指定する際、「メロン」は配列の2番目にあるので「2」と書いてしまいがちですが、配列のインデックス番号は0から始まるため「1」を指定する必要があります。

 

あとで解説する連想配列の値を取り出すときは文字列の「キー」を指定するよ。

 📖目次に戻る

値の追加と上書き

配列の値を追加したり、配列の一部の値上書きする場合も[](ブラケット)を使用します。

 

まずは値をする方法から見てみましょう。

値を追加するには、既に値の入った配列に[](ブラケット)を付けて、追加したい値を代入して行います。

構文

$配列名[] = 追加する値

今回は、「りんご」「メロン」「バナナ」の3つが入った配列に、さらに「ぶどう」追加してみます。

 </>php

<?php

$fruits = [ 'りんご' , 'メロン' , 'バナナ' ];

print_r( $fruits );

$fruits[] = 'ぶどう';

echo '<br />';

print_r( $fruits ); ?>

最初に用意した1行目の配列に対し、2行目ではさらに「ぶどう」が追加されていますね。

追加した「ぶどう」にインデックス番号「3」が割り振られているのは、現在の「最大のインデックス番号+1」自動で割り振られるためです。


次に、一部の配列の値を上書きする方法を見てみましょう。

構文

$配列名[既に存在するインデックス番号]  入れ替える値

「りんご」「メロン」「バナナ」の3つが入った配列の「メロン」「ぶどう」上書きしてみます。

 </>php

<?php

$fruits = [ 'りんご' , 'メロン' , 'バナナ' ];

print_r($fruits);

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

echo '<br />';

print_r($fruits); ?>

最初に用意した1行目の配列に対し、2行目では2番目にあった「メロン」「ぶどう」上書きされました。

既に存在していた「メロン」のインデックス番号「1」を指定して代入したことにより上書きされています。

 

ちなみに「3」以降の番号を指定して値を代入した場合は、既にある配列の後ろに追加されるよ。

 📖目次に戻る

初期化と上書き

配列は期化することもできます。

配列の初期化は、配列の入った変数などに、空っぽ[](ブラケット)array() を代入して行います。

これは、新たな配列として定義する場合や、値の入った配列を一旦空っぽにする場合に行います。

構文 ブラケットの場合

$配列名 = [ ]

構文 arrayの場合

$配列名 = array( )

では早速、既に値の入った配列を初期化してみます。

 </>php

<?php

$fruits = [ 'りんご' , 'メロン' , 'バナナ' ];

  print_r($fruits);

$fruits = [];

  echo '<br />';

  print_r($fruits); ?>

1列目が値を入れた配列の中身で、2列目がその配列を初期化した後の配列の中身です。

中身が空っぽになっていることが確認できますね。

 

また、array()[](ブラケット)値を入れて代入した場合は、配列の中身を上書きすることができます。

 </>php

<?php

$fruits = [ 'りんご' , 'メロン' , 'バナナ' ];

print_r($fruits);

$fruits = ['ぶどう','ブルーベリー'];

echo '<br />';

print_r($fruits); ?>

最初に入っていた3つの果物が、新たに代入した「ぶどう」「ブルーベリー」に置き換わっていますね。

 

これで一通りの配列の操作は分かったかな。

 📖目次に戻る

連想配列の基本

連想配列の作り方

連想配列とは、キーに文字列を指定した要素の入った配列です。

連想配列を作る場合はキーを指定するので、各値にキーの名前 => を付け加える必要があります。

[](ブラケット)array() を使って作成し、複数の値を「,」(カンマ)で区切るところまでは、基本的な配列の作り方と同じです。

構文 arrayの場合

array( 'キー1' => '値1' , 'キー2' => '値2' , 'キー3' => '値3'  );

構文 ブラケットの場合

[ 'キー1' => '値1' , 'キー2' => '値2' , 'キー3' => '値3'  ]

 

それではこの構文を使って、果物に文字列の「色」や数値の「値段」キーに指定してみましょう。

 </>php

<?php

$fruits = [

  '赤い' => 'りんご',

  300 => 'メロン',

  'yellow' => 'バナナ',

];

print_r($fruits); ?>

「りんご」「メロン」「バナナ」に、「赤い」「300」「黄色」などのキーが付与されました。

 

ちなみに、見ての通り「文字列」で指定したキーと「整数」のキーは同時に使用できるよ。

 

値の取り出し方

連想配列から特定の値取り出す場合も「キー」を使います。

値の取り出しは、配列の入った変数の後に取り出したい値の「キー」を書いた[](ブラケット)を記述して行います。

構文

$配列名 [ キー]

 

それでは、先ほどの配列から「バナナ」を取り出してみましょう。

 </>php

<?php

$fruits = [

  '赤い' => 'りんご',

  300 => 'メロン',

  'yellow' => 'バナナ',

];

print_r( $fruits [ 'yellow' ]); ?>

最後の「$fruits [ 'yellow' ] 」でキーの「yellow」を指定しているので、「バナナ」が取り出されました。

 

値の追加と上書き

連想配列も値を追加したり、配列の一部の値上書きすることができます。

 

まずは、連想配列の値の「追加」について見てみましょう。

構文

$配列名[追加するキー]  = 追加する

または、

構文

$配列名  +=  [ 追加するキー  =>  追加する値 ]

それでは、先ほどの連想配列に、キー「ピンク」の付いた値「桃」追加してみます。

 </>php

<?php

$fruits = [

  '赤い' => 'りんご',   300 => 'メロン', 'yellow' => 'バナナ',

];

$fruits [ 'ピンク' ] = '桃' ;  print_r( $fruits ); ?>

$fruits [ 'ピンク' ] = '桃' 」で「キー」「値」を指定しているので、配列の最後に追加されています。

ちなみに「$fruits  += [ 'ピンク' => '桃' ];」と書いても結果は同じです。


次に、連想配列の値の上書きについて見てみましょう。

 

値の「追加」とほぼ同じですが、指定する「キー」が既に存在するキーである点が異なります。

構文

$配列名[既に存在するキー]  = 上書きする

キー「赤い」の値「りんご」を、「さくらんぼ」上書きしてみます。

 </>php

<?php

$fruits = [

  '赤い' => 'りんご',

  300 => 'メロン',

  'yellow' => 'バナナ',

];

$fruits[ '赤い' ] = 'さくらんぼ';

print_r( $fruits ); ?>

キー「赤い」はそのままに、値の「りんご」から「さくらんぼ」上書きされていることが確認できますね。

 

値の「追加」と「上書き」の考え方は次の多次元配列でも同じだよ。色々応用してみてね。

 📖目次に戻る

多次元配列の基本

多次元配列とは、配列の中に配列の入った配列です。

[](ブラケット)array() で囲われた配列を、さらに[](ブラケット)array() 囲うことで作成できます。

また、多次元配列の階層が、2階層であれば二次元配列、3階層であれば三次元配列と表現します。

 

二次元配列

配列の中に配列が入った配列が、二次元配列です。

配列同士を「,」(カンマ)で区切って、 [](ブラケット)array() を囲むことで作ることができます。

構文 ブラケットの場合

[

[ 値1 , 値2 , 値3... ],

[ 値1 , 値2 , 値3... ],

...

]

構文 arrayの場合

array(

array( 値1 , 値2 , 値3... ),

array( 値1 , 値2 , 値3... ),

...

)

それでは、「果物」が入った配列普通の配列に入れて二次元配列を使って作ってみましょう。

 </>php

<?php

$fruits = [

  [ 'いちご' , 'さくらんぼ' ],

  [ 'マンゴー' , 'みかん' ],

  [ 'メロン' , 'スイカ' ],

  [ 'ぶどう' , 'ブルーベリー' ],

  [ 'マスカット' , 'メロン' ],

  [ '桃' , 'すもも' ],

]; ?>

「いちご」「さくらんぼ」などの果物が入った配列が、さらに[](ブラケット)に入っているのがわかると思います。

実は、果物を「色」ごとに分けていたので、今度はそれぞれに「色」キーを設定してみます。

ついでに、果物の入った配列を一つ取り出してみましょう。

 </>php

<?php

$fruits = [

  '赤色' => [ 'いちご' , 'さくらんぼ' ],   '黄色' => [ 'マンゴー' , 'みかん' ],   '緑色' => [ 'メロン' , 'スイカ' ],   '紫色' => [ 'ぶどう' , 'ブルーベリー' ],   '緑色' => [ 'マスカット' , 'メロン' ],

  'ピンク' => [ '桃' , 'すもも' ],

  ]; print_r( $fruits[ '緑色' ] ); ?>

「緑色」のキーを指定することで「マスカット」「メロン」を取り出すことができました。

 

三次元配列

配列の中に配列の入った配列が中に入った配列が三次元配列です。さて私は今、何回配列と言ったでしょう?

という冗談はさておき、

三次元配列は、二次元配列同士を「,」(カンマ)で区切って、 [](ブラケット)array() を囲むことで作ることができます。

それでは、先ほどの二次元配列の種類を増やして三次元配列を作成してみましょう。

 </>php

<?php

$fruits = [

  [

    '赤色' => [ 'いちご' , 'さくらんぼ' ],

    '黄色' => [ 'マンゴー' , 'みかん' ],

    '緑色' => [ 'メロン' , 'スイカ' ],

  ],

  [

    '紫色' => [ 'ぶどう' , 'ブルーベリー' ],

    '緑色' => [ 'マスカット' , 'メロン' ],

    'ピンク' => [ '桃' , 'すもも' ],

  ],

  [

    '緑色' => [ '梨' , 'ラ・フランス' ],

    '黄色' => [ 'ゆず' , '柿' ],

  ],

  [

    '黄色' => [ 'レモン' , 'きんかん' ],

    '赤色' => [ 'いちご' , 'りんご' ],

  ], ]; ?>

二次元配列が、さらに[](ブラケット)に入っていますね。

実は、こちらの配列も「季節」ごとに分けていたので、今度はそれぞれに春、夏、秋、冬の「季節」キーを設定してみます。

ついでに、「色」の配列に入った果物の配列を一つ取り出してみましょう。

 </>php

<?php

$fruits=[

  '春' => [

    '赤色' => [ 'いちご' , 'さくらんぼ' ],

    '黄色' => [ 'マンゴー' , 'みかん' ],

    '緑色' => [ 'メロン' , 'スイカ' ],

  ],

  '夏' => [

    '紫色' => [ 'ぶどう' , 'ブルーベリー' ],

    '緑色' => [ 'マスカット' , 'メロン' ],

    'ピンク' => [ '桃' , 'すもも' ],

  ],

  '秋' => [

    '緑色' => [ '梨' , 'ラ・フランス' ],

    '黄色' => [ 'ゆず' , '柿' ],

  ],

  '冬' => [

    '黄色' => [ 'レモン' , 'きんかん' ],

    '赤色' => [ 'いちご' , 'りんご' ],

  ],

];

print_r($fruits[ '' ][ '緑色' ]); ?>

$fruits[ '' ][ '緑色' ]とすることで、「秋」の中の「緑色」の配列の値を取り出すことができました。

さて、ここで問題です。

「ラ・フランス」だけを取り出すにはどうすれば良いでしょうか?

 

、、、そうです。$fruits[ '' ][ '緑色' ]さらに インデックス番号をつければ良いのです。

先ほどの最後のコードを以下のコードに書き換えてもう一度出力してみましょう。

 </>php

print_r($fruits[ '' ][ '緑色' ][ 1 ]);

「秋」の中の「緑色」の配列のインデックス番号「1」の値を取り出すことができました。

このように、多次元配列の中にある値は、[](ブラケット)を[][][]...のように連ねて使用することで指定することができます。

 

便利だけど、階層を深くしすぎると見通しが悪くなるから気をつけようね。

📖目次に戻る

最後に

いかがでしたでしょうか、今回はphpの基本である「配列」について解説しました。

もっと詳しく学習したい方は、下の記事一覧から他の記事もご覧下さい。

php

phpの基本文法と基礎テクニックについて初心者向けに解説しているよ!!  

続きを見る

最後までお読みいただき、ありがとうございました!

-php
-