配列は、複数のデータを一つの変数にまとめて管理できるデータ構造です。PHPの配列は非常に柔軟で、他の言語の配列・リスト・辞書(連想配列)の機能をすべて兼ね備えています。
この記事では、PHPの配列の作成方法から、要素の追加・削除、便利な組み込み関数まで詳しく解説します。
配列の作成
PHP
<?php
// 角括弧で作成(推奨)
$fruits = ["りんご", "みかん", "バナナ"];
// 空の配列を作成
$empty = [];
// 要素にアクセス(インデックスは0から始まる)
echo $fruits[0] . "\n"; // りんご
echo $fruits[1] . "\n"; // みかん
echo $fruits[2] . "\n"; // バナナ
// 要素数を取得
echo "要素数: " . count($fruits) . "\n";
?>
実行結果
りんご
みかん
バナナ
要素数: 3
配列のインデックス(添字)は0から始まります。count()関数で配列の要素数を取得できます。
連想配列
PHPの連想配列は、文字列のキーで値にアクセスできる配列です。
PHP
<?php
$user = [
"name" => "田中太郎",
"age" => 30,
"email" => "tanaka@example.com",
];
echo "名前: " . $user["name"] . "\n";
echo "年齢: " . $user["age"] . "\n";
echo "メール: " . $user["email"] . "\n";
// 要素の追加
$user["phone"] = "090-1234-5678";
echo "電話: " . $user["phone"] . "\n";
// キーの存在確認
if (array_key_exists("email", $user)) {
echo "emailキーが存在します\n";
}
?>
実行結果
名前: 田中太郎
年齢: 30
メール: tanaka@example.com
電話: 090-1234-5678
emailキーが存在します
要素の追加と削除
PHP
<?php
$fruits = ["りんご", "みかん"];
// 末尾に追加
$fruits[] = "バナナ";
array_push($fruits, "ぶどう");
echo "追加後: " . implode(", ", $fruits) . "\n";
// 先頭に追加
array_unshift($fruits, "メロン");
echo "先頭追加: " . implode(", ", $fruits) . "\n";
// 末尾から削除
$last = array_pop($fruits);
echo "削除: $last\n";
// 先頭から削除
$first = array_shift($fruits);
echo "削除: $first\n";
echo "結果: " . implode(", ", $fruits) . "\n";
?>
実行結果
追加後: りんご, みかん, バナナ, ぶどう
先頭追加: メロン, りんご, みかん, バナナ, ぶどう
削除: ぶどう
削除: メロン
結果: りんご, みかん, バナナ
便利な配列関数
PHP
<?php
$numbers = [3, 1, 4, 1, 5, 9, 2, 6];
// ソート
sort($numbers);
echo "ソート: " . implode(", ", $numbers) . "\n";
// 検索
$fruits = ["りんご", "みかん", "バナナ"];
if (in_array("みかん", $fruits)) {
echo "みかんがあります\n";
}
// 重複除去
$data = [1, 2, 2, 3, 3, 3];
$unique = array_unique($data);
echo "重複除去: " . implode(", ", $unique) . "\n";
// 配列の結合
$a = [1, 2, 3];
$b = [4, 5, 6];
$merged = array_merge($a, $b);
echo "結合: " . implode(", ", $merged) . "\n";
?>
実行結果
ソート: 1, 1, 2, 3, 4, 5, 6, 9
みかんがあります
重複除去: 1, 2, 3
結合: 1, 2, 3, 4, 5, 6
unsetはインデックスを詰めない
unset()で要素を削除すると、インデックスが歯抜けになります。連番にしたい場合は array_values() でインデックスを振り直しましょう。
implode()とexplode()
implode()は配列を文字列に結合し、explode()は文字列を配列に分割します。CSV処理など文字列と配列を相互変換する際によく使います。
まとめ
- PHPの配列は角括弧 [] で作成し、インデックスは0から始まる
- 連想配列は「キー => 値」の形式で名前付きデータを管理できる
- array_push()、array_pop()、unset()などで要素の追加・削除ができる
- sort()、in_array()、array_merge()など豊富な組み込み関数がある
- unset()で削除するとインデックスが歯抜けになる点に注意