PHPの配列は、複数のデータをひとまとめに管理できる便利なデータ構造です。Webアプリケーションではフォームデータの受け渡しや設定情報の保持など、あらゆる場面で配列が活躍します。本記事では、初心者向けに配列の基本から多次元配列、実践的な活用例までをコード付きでわかりやすく解説します。

PHPの配列とは?基本概念と種類

PHPの配列は、順序付きの「インデックス配列」と、キーと値をペアで管理する「連想配列」の2種類があります。どちらもarray型(アレイ型)として扱われ、任意のデータ型を格納できます。例えば、数値や文字列はもちろん、オブジェクトや他の配列も要素として保持可能です。配列を使うことで、変数を大量に定義せずにデータ管理が効率化できます。

  • インデックス配列
    順番に番号(インデックス)が振られた配列で、数字のキーでアクセスします。
  • 連想配列
    キーと値のペアで管理される配列で、文字列や数値のキーで値にアクセスします。

配列の作成方法:インデックス配列と連想配列

<?php
// インデックス配列の作成
$fruits = ['りんご', 'バナナ', 'オレンジ'];

// インデックス配列の要素を1つずつ表示
echo $fruits[0]; // りんご
echo $fruits[1]; // バナナ
echo $fruits[2]; // オレンジ

// 連想配列の作成
$user = [
    'name' => '山田太郎',
    'age'  => 30,
    'email'=> 'taro@example.com'
];

// 連想配列の要素をキー指定で表示
echo $user['name'];  // 山田太郎
echo $user['age'];   // 30
echo $user['email']; // taro@example.com

?>

インデックス配列は[]で並べるだけ、連想配列はキー => 値の形式で定義します。どちらもarray()関数で同様に作成できます。

配列要素へのアクセスと操作(追加・更新・削除)

PHPの配列は、インデックスやキーを使って要素にアクセスし、追加・更新・削除が簡単に行えます。
以下に基本的な操作例を示します。

<?php
// インデックス配列の例
$fruits = ['りんご', 'バナナ', 'オレンジ'];

// 連想配列の例
$user = [
  'name' => '山田太郎',
  'age'  => 30,
  'email'=> 'taro@example.com'
];

// 要素の追加(インデックス配列の末尾に追加)
$fruits[] = 'ぶどう';  // $fruits は ['りんご', 'バナナ', 'オレンジ', 'ぶどう']になります

// 要素の更新(連想配列のキー 'age' の値を変更)
$user['age'] = 31;     // $user['age'] は 31 に更新される

// 要素の削除(インデックス配列の0番目の要素を削除)
unset($fruits[0]);     // 'りんご' が削除される。インデックスは詰められないため注意が必要

?>

各操作の詳細

追加

インデックス配列の場合、$array[] = 値; の形式で配列の末尾に新しい要素を追加できます。
連想配列の場合は、新しいキーを指定して代入することで要素を追加します。
例:$user['address'] = '東京都';

更新

既存のキーやインデックスに対して代入するだけで値を上書きできます。

削除

unset()関数で特定の要素を削除できます。ただし、インデックス配列の場合、削除しても配列のインデックスは自動で詰められません。
配列の連続したインデックスを保ちたい場合は、array_values()関数を使って再構築する必要があります。

<?php
// 削除後にインデックスを詰める例
unset($fruits[0]);
$fruits = array_values($fruits);  // インデックスが0から連続になる
?>

よく使う配列関数:array_push・array_merge・array_filterなど

<?php

// array_push で複数追加(末尾に新しい要素を追加)
$fruits = ['りんご', 'バナナ'];
array_push($fruits, 'メロン', 'パイナップル');
// $fruits は ['りんご', 'バナナ', 'メロン', 'パイナップル'] になります

// array_merge で配列結合
$colors1 = ['赤', '青'];
$colors2 = ['緑', '黄'];
$allColors = array_merge($colors1, $colors2);
// $allColors は ['赤', '青', '緑', '黄'] になります

// array_filter で条件フィルタ(偶数だけ抽出)
$numbers = [1, 2, 3, 4, 5];
$even = array_filter($numbers, fn($n) => $n % 2 === 0);
// $even は [1 => 2, 3 => 4] となります(元のキーが保持されることに注意)
?>

array_pushは末尾追加、array_mergeは結合、array_filterはコールバックで要素を抽出します。他にもarray_maparray_sliceなど豊富な関数が用意されています。

多次元配列とは?基本と使い方

多次元配列とは、配列の中にさらに配列を要素として持つ配列のことです。
多次元配列を使うことで、表形式のデータや複雑な構造のデータを扱うことができます。

多次元配列の例

<?php
// 2次元のインデックス配列(配列の配列)
$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
// $matrix の2行目(インデックス1)、3列目(インデックス2)の要素を取得
echo $matrix[1][2];  // 出力:6

// 連想配列を含む多次元配列(ユーザー情報のリスト)
$users = [
    [
        'name' => '山田太郎',
        'age'  => 30,
        'email'=> 'taro@example.com'
    ],
    [
        'name' => '佐藤花子',
        'age'  => 25,
        'email'=> 'hanako@example.com'
    ]
];

// $users の1人目(インデックス0)の名前を取得
echo $users[0]['name'];  // 出力:山田太郎

?>

多次元配列の利点

  • 複雑なデータ構造を1つの変数で管理できる
  • 表形式データやリストのリスト、設定情報などを整理しやすい
  • ネストしたループや関数と組み合わせることで柔軟に操作可能

多次元配列はPHPの基本的なデータ構造の一つであり、Web開発でのデータ管理に非常に役立ちます。
初心者の方も、まずは配列の階層構造を意識しながら少しずつ慣れていきましょう。

配列にどんなデータが格納されているか確認する方法

  • 簡単に内容を確認したいときprint_r() + <pre>
  • 型情報も含めて詳細に確認したいときvar_dump() + <pre>
  • PHPコードの形で出力したいときvar_export() + <pre>
目的使う関数説明
簡単に中身を確認したいprint_r()中身を見やすく表示、型は表示しない
型も含めて詳しく調べたいvar_dump()型や要素数なども詳しく表示
PHPコードとして中身を使いたいvar_export()PHPの配列コードの形で表示

1. print_r() を使う

<?php

$array = [
  "fruit" => "apple",
  "count" => 3,
  "colors" => ["red", "green", "yellow"]
];

echo '<pre>';
print_r($array);
echo '</pre>';

?>

表示結果

2. var_dump() を使う

型や詳細情報も含めて表示したいときに使います。

<?php

echo '<pre>';
var_dump($array);
echo '</pre>';
?>

表示結果

3. var_export() を使う

配列の構造をPHPコードとして表示したい場合に便利です。

<?php

echo '<pre>';
var_export($array);
echo '</pre>';
?>

表示結果

まとめ

本記事では、PHP配列の基礎から作成・操作、便利関数、多次元配列、そして配列の確認方法まで解説しました。配列を自在に使いこなすことで、データ管理が効率化され、保守性の高いコードが実現できます。まずは手を動かしながら基本を身につけ、さまざまなシーンで配列を活用してみてください。