みなさんプログラミング学習において「配列」という名を聞いたことはないでしょうか?
プログラミング学習を始めたばかりの方にとっては、配列の概念や使い方を理解するのに難しいと感じることもあるでしょう。
配列をマスターできれば、コードも簡潔に書くことができ、まとまりのあるプログラムの作成ができます。
今回は初心者がつまづきやすい注意点もあわせて、PHPの配列を詳しく説明します。
- PHPの配列の種類
- PHPの配列の関数の使い方
- PHPの配列の注意点
未経験でもPHPをマスターしたい方は、ぜひ「DMM WEBCAMP(PHP/Lalavelコース)」をチェックしてみてください!

PHPの配列とは?

PHPの配列は複数のデータ(value)をひとつの変数に、1つずつ(key)入れ、まとめて格納できる「データ構造」です。
PHPの配列はとても柔軟で、数値型や文字列型など、異なるデータ型を混在させることができます。
データ型とは、プログラムが扱うデータの種類を指します。
データ型は多数存在しており、代表的なものだと数値型の「integer」や文字列型の「string」があります。
PHPの配列の大きな特徴は、次の3点です。
- 配列のキーに数値・文字列が同時に使える
- 異なるデータ型を一つの配列に混在させられる
- サイズを動的に変更できる(固定サイズではない)
PHPの配列はキー(key)と値(value)をペアとして実装されています。

配列は複数の箱にモノを入れるようなことです。
分かりやすく収納できると考えると、とても便利ですね。
PHPの配列の使い方は?





なんとなく配列の意味はわかりました!
では実際どんな時に使うんだろう?使い方も気になります。
PHPの配列は大きく分けて3種類あります。
- 配列(数値がキー)
- 連想配列
- 多次元配列
配列といっても、3つの種類に分かれるため、違いを理解して使用することが重要です。
次で詳しく3つの配列を説明します。
配列(キーが数値)
まずは基本的な配列の使い方を紹介します。シンプルな配列は、要素に対して0から始まる番号でアクセスします。
基本的な配列の書き方は以下になります。
// 配列の宣言と初期化
$fruits = array('apple', 'banana', 'orange');
// PHP 5.4以降の短縮構文
$fruits = [
'apple',
'banana',
'orange',
];
print_r($fruits)
//実行結果
Array
(
[0] => 'apple'
[1] => 'banana'
[2] => 'orange'
)
// 配列の要素へのアクセス
echo $fruits[0]; // apple
echo $fruits[1]; // banana
echo $fruits[2]; // orange
array()と短縮構文は書き方は異なりますが、同じ実行結果です。
配列はキーを省略して定義すると、自動的に0から始まる連番が振られます。



こちらがシンプルな配列の構文になります。
キーは1ではなく0から始まるので、間違わないように気を付けましょう。
連想配列
連想配列は、数値ではなく文字列をキーとして使用する配列です。これにより、データに意味のあるラベルを付けることができます。
連想配列の書き方は、以下になります。
// 連想配列の宣言と初期化
$person = array(
'name' => '山田 太郎',
'age' => 30,
'city' => '東京'
);
// PHP 5.4以降の短縮構文
$person = [
'name' => '山田 太郎',
'age' => 30,
'city' => '東京'
];
//実行結果
Array
(
['name'] => '山田 太郎'
['age'] => 30
['city'] => '東京'
)
// 連想配列の要素へのアクセス
echo $person['name']; // 山田太郎
echo $person['age']; // 30
echo $person['city']; // 東京
連想配列を使うと、データがどのような意味を持つのか明確になり、コードの可読性が高まります。



キーが数字ではなく文字列に変わってわかりやすくなりました!
文字列にすると、データがどこに入っているのか理解しやすくなりますね。
多次元配列
多次元配列は、配列の中に配列を入れ子にした構造であり、二次元配列・三次元配列などがあります。
ある構造の内部に同じ構造が含まれている状態のことを指し、「ネスティング」とも呼びます。
配列に例えると、配列の中に配列がある状態をいいます。
多次元配列の書き方は、以下になります。
// 二次元配列の例
$students = [
['name' => '佐藤', 'score' => 85],
['name' => '鈴木', 'score' => 92],
['name' => '田中', 'score' => 78]
];
// 多次元配列の要素へのアクセス
echo $students[0]['name']; // 佐藤
echo $students[1]['score']; // 92
// 三次元配列の例
$school = [
'1年生' => [
'クラスA' => ['田中', '佐藤', '鈴木'],
'クラスB' => ['高橋', '伊藤', '渡辺']
],
'2年生' => [
'クラスA' => ['山本', '中村', '小林'],
'クラスB' => ['加藤', '吉田', '山田']
]
];
echo $school['1年生']['クラスA'][0]; // 田中
多次元配列は複雑なデータ構造を表現するのに役立つ配列となります。



しかし、入れ子が深くなりすぎると可読性が低下してしまうので注意しましょう。
将来アプリやシステム開発をしてみたい、Webエンジニアになりたいとお考えの方は、PHPの習得がおすすめです。
PHPを学べるプログラミングスクールとして、DMM WEBCAMPは「PHP/Lalavelコース
PHPをマスターしたい方はぜひチェックしてみてください。
\PHPをマスターしよう! /
PHPの配列に役立つ関数





配列にもいろいろな種類があるのがわかりました!
でも、もしも新しいデータを途中で入れたくなったり削除したくなったとき、どうすればいいだろう?
PHPには配列を操作するための豊富な関数が用意されています。
関数とは、処理を行うプログラムを指します。
例えばfunctionという関数名の場合、「function()」と書きます。
関数に値(引数)を渡すことで結果を返してくれます(戻り値)
配列は関数を使用することで、以下のことが可能です。
- 配列の要素を追加・削除できる
- 配列の並び替えを変更できる
- 配列の検索や抽出ができる
次で頻繁に使う関数をいくつか紹介します。
配列の要素を追加・削除する
まずは配列の要素を追加したり削除したりできる関数を紹介します。
- array_push
- array_unshift
- array_pop
- array_shift
- array_value
これらの関数は、引数を用いて使用していきます。
関数に渡す値を指し、「関数名(引数1、引数2…)」と書きます。
引数を関数に渡すことで、関数はその値に応じた処理を行なってくれます。
各配列の関数について、次で詳しく説明します。
array_push
array_pushは配列の末尾に要素を追加できる関数です。
$fruits = ['りんご', 'バナナ'];
// 引数1に配列、引数2に末尾に追加したい要素
array_push($fruits, 'オレンジ');
// この書き方でもOK
$fruits[] = 'オレンジ';
print_r($fruits);
//実行結果
Array
(
[0] => 'りんご'
[1] => 'バナナ'
[2] => 'オレンジ'
)
array_unshift
array_unshiftは配列の先頭に要素を追加する関数です。
$fruits = ['りんご', 'バナナ'];
// 引数1に配列、引数2に先頭に追加したい要素
array_unshift($fruits, 'ぶどう');
print_r($fruits);
//実行結果
Array
(
[0] => 'ぶどう'
[1] => 'りんご'
[2] => 'バナナ'
)
array_pop
array_popは配列の末尾から要素を削除する関数です。
$fruits = ['りんご', 'バナナ'];
// 配列の末尾から要素を削除して取得
array_pop($fruits);
print_r($fruits);
//実行結果
Array
(
[0] => 'りんご'
)
array_shift
array_shiftは配列の先頭から要素を削除する関数です。
$fruits = ['りんご', 'バナナ'];
// 配列の先頭から要素を削除して取得
array_shift($fruits);
print_r($fruits);
//実行結果
Array
(
[0] => 'バナナ'
)
array_value
array_valueは配列から全て取り出し、キーを数値に置き換えて詰める関数です。
$colors = ['赤', '青', '緑', '黄'];
// まずは特定の位置の要素を削除
unset($colors[1]);
// '青'が削除される
$colors = [0 => '赤', 2 => '緑', 3 => '黄']
// 注意: unset()後、インデックスは詰められない
// array_valueを使って全て取得し、インデックスを詰める
array_values($colors);
print_r($colors);
//実行結果
Array
(
[0] => '赤'
[1] => '緑'
[2] => '黄'
)
配列の並べ替え
関数を使うことで、配列の順を並び替えることができます。
- sort
- rsort
- asort
- ksort
配列における並び替え関数について、次で詳しく説明します。
sort
sortは昇順に並び替える関数です。
$numbers = [5, 3, 8, 1, 9];
sort($numbers);
print_r($numbers);
//実行結果
Array
(
[0] => '1'
[1] => '3'
[2] => '5'
[3] => '8'
[4] => '9'
)
rsort
rsortは降順に並び替える関数です。
$numbers = [5, 3, 8, 1, 9];
rsort($numbers);
print_r($numbers);
//実行結果
Array
(
[0] => '9'
[1] => '8'
[2] => '5'
[3] => '3'
[4] => '1'
)
asort
asortはキーと値の関連付けを維持しながら値で昇順に並び替える関数です。
$fruits = [
'o' => 'banana',
'b' => 'apple',
'a' => 'orange'
];
asort($numbers);
print_r($numbers);
//実行結果
Array
(
'b' => 'apple'
'o' => 'banana'
'a' => 'orange'
)
ksort
ksortはキーと値の関連付けを維持しながらキーで昇順に並び替える関数です。
$fruits = [
'o' => 'banana',
'b' => 'apple',
'a' => 'orange'
];
ksort($numbers);
print_r($numbers);
//実行結果
Array
(
'a' => 'orange'
'b' => 'apple'
'o' => 'banana'
)
配列の検索と抽出
配列の関数は、特定の要素を検索したり抽出したりも可能です。
- array_search
- in_array
- array_filter
- array_map
配列の検索と抽出について、次で詳しく説明します。
array_search
array_searchは指定した値を配列で検索し、見つかった場合に対応するキーを返す関数です。
$fruits = ['りんご', 'バナナ', 'オレンジ', 'ぶどう'];
// 引数1に検索したい値、引数2に配列
$position = array_search('バナナ', $fruits);
// $position = 1
in_array
in_arrayは指定した要素が配列に存在するか確認する関数です。
$fruits = ['りんご', 'バナナ', 'オレンジ', 'ぶどう'];
// 引数1に確認したい値、引数2に配列
$exists = in_array('オレンジ', $fruits);
// 値が存在する場合、trueを返す
// $exists = true
array_filter
array_filterは条件に合う要素だけを抽出する関数です。
$fruits = ['りんご', 'バナナ', 'オレンジ', 'ぶどう'];
function value($fruit) {
return strlen($fruit) > 3; // 文字数が3より大きい要素を返す
}
// 引数1に配列、引数2に関数名
$value = array_filter($fruits, value);
print_r($value);
//実行結果
Array
(
'0' => 'りんご'
'1' => 'バナナ'
'2' => 'ぶどう'
)
array_map
array_mapは、配列の要素全てに対して、指定した関数を適用させる場合に使用する関数です
$fruits = ['りんご', 'バナナ', 'オレンジ', 'ぶどう'];
function value($fruit) {
return strlen($fruit); // 各要素の文字数を取得
}
// 引数1に関数名、引数2に配列
$value = array_map(value, $fruits);
print_r($value);
//実行結果
Array
(
'0' => 3
'1' => 3
'2' => 4
'3' => 3
)
PHPの配列の注意点





関数を使用すると、簡単に配列の操作ができることがわかりました!
でも慣れるまで時間がかかりそうです。配列で注意すべきポイントはあるのでしょうか?
PHPの配列を使うとき、注意点があります。
- キーの型が自動変換される
- 配列のキーが連番にならない場合がある
- 配列の関数の動作や戻り値について
この3点について、次で詳しく説明します。
キーの型が自動変換される
PHPの配列では、キーが数値か文字列に自動で変換されます。
例えばキーをtrue・null・1.5など に設定すると、 1 や空文字に変換されます。
$array = [
true => 'A',
1 => 'B',
];
print_r($array)
//実行結果
Array
(
'1' => 'B'
)
// 結果、'A' が上書きされる
このように意図しない上書きが起こる可能性があります。
配列のキーが連番にならない場合がある
array() や [] で要素を追加していくと、自動的にインデックスが振られます。
しかし明示的にキーを指定したり、途中で要素を削除したりすると、連番でなくなることがあります。
$array = [];
$array[] = 'A'; // index 0
$array[3] = 'B';
$array[] = 'C';
print_r($array)
//実行結果
Array
(
'0' => 'A'
'3' => 'B'
'4' => 'C'
)
// index 4になる
配列の関数の動作や戻り値について
例えば array_merge() は数値キーを振り直しますが、+ 演算子は元のキーを保持します。
$a = [1 => 'A'];
$b = [2 => 'B'];
$result1 = $a + $b;
//実行結果
Array
(
'1' => 'A'
'2' => 'B'
)
$result2 = array_merge($a, $b);
//実行結果
Array
(
'0' => 'A'
'1' => 'B'
)
違いを理解し、必要に応じる必要があります。
まとめ:PHPの配列をマスターしよう
今回はPHPの配列について、つまづきやすい注意点もあわせてご紹介しました。
PHPの配列は非常に柔軟で強力なデータ構造です。基本的な使い方やつまづきやすいポイントを理解すれば、PHPプログラミングがぐっと楽になるでしょう。
- 数値添字配列、連想配列、多次元配列の違いと使い分け
- 配列操作に便利な関数を活用する
- 配列を使う時の注意点の把握
これらのポイントを押さえて、PHPの配列をしっかりマスターしましょう。
DMM WEBCAMP(PHP/Lalavelコース)
配列はもちろん基礎学習から始まり、オリジナルWebサービス開発が可能なので、転職活動に必要なポートフォリオの作成が可能です。
PHPをマスターして、Webエンジニアへの転職を目指している方はいかがでしょうか、ぜひチェックしてみてください!
この記事を読んで、みなさんのPHPプログラミングの上達に貢献できれば幸いです。