PHPの配列 完全ガイド|初級試験頻出ポイント

配列はPHP8技術者認定初級試験で最も出題頻度が高いテーマの一つです。 インデックス配列・連想配列の基礎から、頻出の配列関数、試験で狙われやすい引っかけポイントまで まとめて解説します。

配列の基本|インデックス配列と連想配列

PHPの配列には、キーが自動で連番になるインデックス配列と、 キーを自分で指定する連想配列があります。

// インデックス配列(キーは自動で0から連番)
$fruits = ['りんご', 'みかん', 'ぶどう'];
echo $fruits[0]; // りんご

// 連想配列(キーを自分で指定)
$user = ['name' => '山田', 'age' => 20];
echo $user['name']; // 山田

foreachでキーと値を取り出す

連想配列を扱うときは、foreach ($array as $key => $value)の形で キーと値を同時に取り出せることを覚えておきましょう。

$scores = ['国語' => 80, '数学' => 95, '英語' => 70];

foreach ($scores as $subject => $score) {
    echo "{$subject}: {$score}点\n";
}

初級試験で頻出の配列関数

関数 説明
count()要素数を取得する
array_map()全要素にコールバックを適用した新しい配列を返す
array_filter()条件を満たす要素だけを残した配列を返す(キーは維持される)
array_merge()複数の配列を結合する(同じキーは後の値で上書き)
in_array()値が配列内に存在するか判定する
array_search()値からキーを検索する(見つからなければfalse)
sort() / rsort()値を昇順・降順に並び替える(キーは振り直される)
ksort() / asort()キー・値を基準に、キーを保持したまま並び替える
array_keys() / array_values()キー一覧・値一覧を取得する
$numbers = [3, 1, 4, 1, 5];

$doubled  = array_map(fn ($n) => $n * 2, $numbers);      // [6, 2, 8, 2, 10]
$evens    = array_filter($numbers, fn ($n) => $n % 2 === 0); // [2 => 4]
$total    = array_sum($numbers);                          // 14
$inArray  = in_array(4, $numbers);                        // true

試験の引っかけポイント

① array_merge() と + 演算子の違い

同じキーが重複した場合、array_merge()後の値で上書きされますが、+演算子は 先の値が優先されます。この違いは頻出です。

$a = ['x' => 1, 'y' => 2];
$b = ['y' => 9, 'z' => 3];

$merged = array_merge($a, $b); // ['x' => 1, 'y' => 9, 'z' => 3](後勝ち)
$union  = $a + $b;             // ['x' => 1, 'y' => 2, 'z' => 3](先勝ち)

② sort系関数はキーが振り直される

sort()rsort()を使うと、 元のキー(特に連想配列のキー)は失われ、0から始まる連番に振り直されます。 キーを維持したい場合はasort()arsort()を使います。

③ array_search() の戻り値は == で比較しない

キー0が見つかった場合と、見つからずfalseが返る場合を ==で比較すると区別できません(0 == falseはtrue)。 必ず===で厳密に比較しましょう。

配列に関する模擬問題を解いてみよう

配列の理解度を模擬試験で確認しよう

無料・登録不要ですぐに挑戦できます。