検索

キーワード


【PHP】配列、連想配列、多次元配列と、配列の並び替えについて

  • 公開日:2020-10-02 15:49:00
  • 最終更新日:2021-02-03 18:33:00

配列

ここでは、PHPでの配列について解説していきます。

配列とは

まずは簡単に配列について解説します。

名前をつけた箱に1つの値や文字列を入れて使い回すというものが変数でした。

その名前のついた箱の中に、番号のついた複数の小さな箱を作り、複数のデータを扱えるようにしたものが配列です。


配列の定義・出力

それでは、配列を定義してみましょう。配列を定義するには、arrayまたは[]を使って定義することができます

$color1 = array("red", "blue", "green");
$color2 = ["yellow", "black", "white"];

定義ができたら、配列の中身を出力してみましょう。

配列の場合、一つの箱のなかに複数の値が格納されている状態のため、配列名だけ指定して出力命令を実行しても何も表示されません。

そのため、配列が格納されている場所(これをインデックスという)を指定して出力する必要があります。

定義の際にインデックスも一緒に指定して格納することができ、特に指定がない場合は0、1、2・・・と自動的に割り振られます。

出力するには次のように指定して出力します。

<?php

$color = array("red", "blue", "green");
echo $color[0];

?>
red

0番目(red)を指定したことにより、redが出力されました。


配列操作

定義した配列は、変数と同様に処理の途中で値を操作することができます。

配列の書き換え

書き換え方は変数の代入と同様、配列のインデックスを指定して値を代入することで書き換えが行えます。

それでは先ほどの例を使って、配列colorの値を書き換えてみましょう。

<?php

$color = array("red", "blue", "green");

// redをyellowに書き換える
$color[0] = "yellow";
// これにより、配列colorはarray("yellow", "blue", "green")となる echo $color[0]; ?>
yellow


配列の追加

配列に値を追加するには、array_push関数を利用します。

array_push(追加対象の配列名, [要素1, 要素2, ・・・])

また、関数を使わない方法として[]で追加することも可能です。

それでは、配列colorに要素を追加してみましょう。

<?php

$color = array("red", "blue", "green");

// blackとwhiteを追加する
array_push($color, "black", "white");
var_dump($color);

// goldとsilverを追加する
$color[] = "gold";
$color[] = "silver";
var_dump($color);

?>

array_pushで追加

array(5) { [0]=> string(3) "red" [1]=> string(4) "blue" [2]=> string(5) "green" [3]=> string(5) "black" [4]=> string(5) "white" }

[]で追加

array(7) { [0]=> string(3) "red" [1]=> string(4) "blue" [2]=> string(5) "green" [3]=> string(5) "black" [4]=> string(5) "white" [5]=> string(4) "gold" [6]=> string(6) "silver" }


連想配列と多次元配列

ここまで配列の値を出力したり書き換えをしてきましたが、配列のインデックスを自由に変更したり、配列の中に更に配列を定義することもできます。

そういった配列を連想配列多次元配列と呼びます。

連想配列

配列を定義する際にインデックスの名前を自由に命名できます。基本的には値と関連するようなインデックス名にすると良いでしょう。

定義は"インデックス名" => "値"で定義します。また、インデックス名を指定せずに定義する配列を添字配列と言います。

$color = [
  "red" => "赤",
  "blue" => "青",
  "green" => "緑",
];

この配列をvar_dump命令で出力してみます。

array(3) { [red]=> string(1) "赤" [blue]=> string(1) "青" [green]=> string(1) "緑" }


多次元配列

多次元配列は、連想配列の中に更に連想配列を格納した配列のことを言います。

先ほどの連想配列を多次元配列に変えてみましょう。

$color = [
  "red" => [
    "和訳" => "赤",
  ],
  "blue" => [
    "和訳" => "青",
  ],
  "green" => [
    "和訳" => "緑",
  ],
];

この配列をvar_dump命令で出力してみます。

array(3) { [red]=> array(1) { ["和訳"]=> string(1) "赤" } [blue]=> array(1) { ["和訳"]=> string(1) "青" } [green]=> array(1) { ["和訳"]=> string(1) "赤" } }


配列の並び替え

PHPには配列を並び替えるための関数が複数用意されています。

ここでは添字配列に格納されている数字を昇順・降順に並び替える、sort関数rsort関数を使って並び替えてみます。

sort関数は昇順に、rsort関数は降順の並び替えます。

<?php

$array = [10, 5, 4, 8, 2];
sort($array);
var_dump($array);
rsort($array);
var_dump($array);

?>
array(5) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> int(8) [4]=> int(10) }
array(5) { [0]=> int(10) [1]=> int(8) [2]=> int(5) [3]=> int(4) [4]=> int(2) } 


まとめ

配列の操作や、連想配列・多次元配列についてまとめてみました。

配列はデータを管理する上では必須知識になってきますので、しっかり覚えて使いこなせるようになりましょう!


【著者】

當山

主にPHPでのフレームワーク開発やWebアプリの開発に携わってきました。 得意分野はHTML5とCSSによるフロントエンド開発。

よく読まれている記事