10分で丸わかり!PHPの配列(array)の基礎から応用まで解説


PHPの勉強を始めたけど、配列の使い方がよくわからない・・・
配列はどのような用途で使えばいいの?変数との違いはなに?
配列を効率よく覚えたいけど何か良い方法はないかな?

PHPの勉強を始めたばかりの初学者が、最初につまづきやすいのが配列と言えます。配列の基本は理解できても、実際の業務では配列を駆使してさまざまな処理を行う必要があります。

こんにちは!侍エンジニア塾編集部です。

今回解説する配列の機能がどんな機能なのかわからない方でも丁寧に解説していくのでぜひ、この記事で学んでいってください。初心者必見の内容となりますので、ぜひ最後まで読んでいただいてPHPの配列について理解を深めていただければ幸いです。

この記事はこんな人のために書きました

  • 配列の基礎の基礎を学びたい方
  • 配列のさまざまな操作方法を知りたい方
  • 配列でつまづいて困っている方

PHPの配列(Array)とは

配列(Array)とはどのようなものでしょうか?配列の説明に入る前に基本型(リテラル)についておさらいしておきましょう。

基本形(リテラル)では1つの変数を定義して、その変数に対して値を代入します。PHPでは変数を宣言すると同時に値を代入するのが基本です。

PHPの配列(Array)の場合は、わかりやすく言うとこの変数の値が複数格納できるものになります。

このように複数の値が格納できるため、大量のデータを扱いたいときに配列は非常に便利です。また、配列には連想配列多次元配列があります。

連想配列はキーと値を別々に指定できる配列、多次元配列は配列の内部に配列を持つことができます。それぞれの使い方についてもこの記事内で詳しく解説していきます。
つまり配列とは

  • 値を複数格納できる
  • 配列には連想配列と多次元配列という種類もある

PHPの配列(Array)はどんなときに使うの?

PHPの配列は最初に説明したように複数のデータを一度に扱うことが可能なため、大量のデータを扱う必要がある場合に使用します。

例えば生徒のテストの点数を扱う変数を基本形(リテラル)で記述しようとした場合、以下のように大量に変数を定義しなければいけません。

しかし、配列を使用すれば1つの配列変数を定義すればOKです。

そのため、複数の同じ種類の値を扱いたい場合は配列を使用すると便利です。

PHPの配列(Array)の書き方とは

配列を作成する方法としてはarray()で作成するか、[](角括弧)で作成する方法があります。

PHP5.4以降では配列の短縮構文が追加され、array()の代わりに[](角括弧)が使えるようになりました。この記事での配列は[](角括弧)の形式での解説となります。

配列の書き方

値を格納することで、0から順番に0,1,2が添字(要素番号)で割り振られます。

なお、配列にはさまざまな使い方が可能で、基本を理解しただけでは実際の実務ではつまづきやすいと言えます。実務でよく使う応用的な使い方の理解もある程度必要なため、この記事で紹介している応用的な使い方についても目を通していただければ幸いです。

PHPの配列の書き方まとめ

  • 配列は任意のオブジェクト型を要素として持つことができる
  • 配列はarray()か[](角括弧)で作成できる
  • 値を格納することで添字が0,1,2と割り振られる

PHPの配列の基本的な使い方

配列の初期化と代入

PHPの場合、配列の初期化と代入は基本的にまとめて実施します。

以下のサンプルプログラムを御覧ください。

このプログラムでは配列変数$sportsを定義したあとに[](角括弧)の中に’Baseball’、’Badminton’、’Basketball’の値を順番に代入しています。

代入する値は文字列の他に数値も格納可能です。また、文字列と数値が混在しても大丈夫です。

配列の出力

配列の中身を確認したい場合はprint_rなど文字列を出力する関数を使用すると便利です。以下のプログラムでは配列の値をprint_r関数で出力しています。

実行結果:

また、繰り返し文であるforeach文を使用して要素ごとに値を出力することもできます。

実行結果:

foreachの使い方については以下の記事で詳しく解説していますので合わせて参考にしてください。

配列の要素を追加

配列に要素を追加する場合は[](角括弧)を指定して「$配列名[] = ‘値’」のように記述します。

実行結果:

PHPの連想配列

連想配列とは

連想配列は値を格納して自動的に添字の番号(0,1,2…)が割り振られるのとは異なり、番号をキーとして名前をつけることができる配列です。添字番号にキーとして名前をつけることにより、そのKeyを指定して値を取り出すなどの管理がしやすくなるといったメリットがあります。

連想配列を作成するには角括弧[]の中で「キー名=>値」のように指定します。

連想配列の書き方:

連想配列の使い方

キーと値を別々に指定できる連想配列の使い方について見ていきましょう。以下のプログラムを御覧ください。

実行結果:

このようにキーに紐づく値が取得できていることがわかりますね!

以下のようにforeach文を使用して連想配列のキーと値を出力することも可能です。

実行結果:

連想配列でforeach文を使用する場合はforeach文の条件式で「 $配列変数名 as $キー取得変数=>$値取得変数」のように定義します。

実際の業務でもforeach文でキーや値を取り出して、キーごとに条件を分岐させるなどの処理で使われますので、使い方についてはよく理解しておきましょう。

PHPの多次元配列

多次元配列とは

多次元配列とは、一言で言うと配列の中にさらに複数の配列が入っているものになります。

多次元配列は以下のように記述します。

$配列変数の中に複数の配列の情報が格納されていることがわかりますね。

多次元配列の使い方

多次元配列の実際のコードは以下のようになります。

実行結果:

実行結果からわかるように配列$arrayの各要素に1つの配列が格納されていることがわかりますね。繰り返し文で多次元配列の値を出力したい場合は以下のようになります。

実行結果:

このプログラムではforeachを使って要素ごとに値を出力しました。$valsには$arrayの中の配列が格納されていますので$vals[0] $vals[1] $vals[2]のように要素番号を指定することにより、配列の値を取得できます。

PHPの配列の応用的な使い方

ここでは配列のさまざまな応用的な使い方について見ていきましょう。

配列の値を検索しよう

ここでは「array_search」「in_Array」「array_keys」を使用して配列の値を検索する方法について紹介します。

array_search関数は指定した値を検索し、最初のキーを返します。値が存在しなかったらFALSEを返します。

実行結果:

in_array関数は配列の中に指定した値が存在する場合はTRUE。未存在はFALSEを返します。

実行結果:

array_keys関数は配列のキーのすべて、あるいは一部を返します。重複した値があった場合でもキーを配列にして返します。

実行結果:

配列を結合してみよう

ここでは「Array_merge」「Array_merge_recursive」「Array_push」を使用して配列を結合する方法について紹介します。

array_merge関数は配列同士を結合するときに使用します。

  • キーが文字列なら値が上書きされます。
  • キーが数値なら値は上書きされず、添字番号が振り直されます。
  • 添字配列の添字番号は「値が小さい順」ではなく「宣言された順」となります。

実行結果:

array_merge_recursive関数は配列同士を結合するときに使用します。array_merge()関数と比べてキーが文字列なら値が上書きされません。

Arrayとして格納される点が異なります。

実行結果:

array_push関数は一つ以上の要素を配列の最後に追加します。

実行結果:

配列の値を置換しよう

ここでは「Array_replace」を使用して配列の値を置換する方法について紹介します。array_replace関数は置換対象の文字列が配列に存在した場合、置換する文字列に置き換えます。

実行結果:

配列の値を並び替えよう

sortメソッドを使用することで配列の並び替え(ソート)を行うことができます。配列に対してsortメソッドを使用すると昇順でソートを行います。

実行結果:

主に連想配列のソートとしては下記がよく使用されます。

メソッド説明
ksortキーとデータの関係を維持しつつ、配列をキーで昇順ソートする。
krsortキーとデータの関係を維持しつつ、配列をキーで降順ソートする。
asortキーとデータの関係を維持しつつ、配列を値で昇順ソートする。
krsortキーとデータの関係を維持しつつ、配列を値で降順ソートする。

配列の値を抽出しよう

array_filter関数は、コールバック関数を使用して、配列の要素をフィルタリングします。

実行結果:

PHPについてもっと学びたい方へ

ここでは、PHPの配列(Array)について基礎の基礎から解説してきました。プログラミングを身につけるためには、たくさんのトライ・アンド・エラーが必要です。しかし、PHPはできることがたくさんある分、非常に奥の深い言語です。


PHPの使い方についてもっとよく知りたい
PHPのスキルを身に着けられるか不安・・・
PHPを体系的に勉強したい

と感じている方は以下の記事も合わせてご覧ください。

PHPの概要から基本的な使い方まで網羅していますので、きっと参考になるのではと思います。

PHP入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得/技術習得】
更新日 : 2018年11月30日

まとめ

今回はPHPの配列(Array)について、配列の仕組みから基本的な使い方・応用的な使い方など網羅的に解説しました。配列は覚えてしまえばとても便利なものであることがわかったと思います。

しかし配列でできることは非常に多く、実際の業務では配列を駆使してさまざまな処理を行うことになりますので、使い方についてはしっかりとマスターしておきましょう。

未経験者でも安心の徹底サポート!まずは完全無料の体験レッスン!

「プログラミングに興味があるけど未経験だし、、、」とお悩みの方はご安心ください。

  • 24時間質問し放題
  • あなただけのオーダーメイドカリキュラムで学習の効率化
  • 仕事獲得方法からオリジナルアプリ開発方法

侍エンジニア塾では徹底したサポートによる「オーダーメイドカリキュラム」を作成しています。

まずは無料体験レッスンで、「挫折しない学習方法」や「あなただけの学習ロードマップ」を知り、学習の効率化をしましょう。独学の難点である「オリジナルアプリの作り方やエラーの対処法」についてもアドバイスさせていただきます。

詳しいサービス内容は、下記よりご参照ください。

cta_mtm1

LINEで送る
Pocket

書いた人

侍テック編集部

侍テック編集部

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説