検索

キーワード


目次

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

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

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

配列

ここでは、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によるフロントエンド開発。

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事