目次
1. 本記事のポイント
- PHPにおける配列の基本構文と使い方を整理
- よく使う操作(追加、削除、検索、結合など)を具体的に紹介
- 実務でありがちなミスや設計判断の注意点も解説
2. PHPの配列とは?
PHPの配列(array)は、複数の値を1つの変数でまとめて扱える柔軟なデータ構造です。インデックス配列、連想配列、そしてその混在型という3種類が存在します。
インデックス配列は数値キー、連想配列は文字列キーを使用し、用途に応じて自由に切り替えられるのが特徴です。PHPの配列は内部的にはハッシュテーブルとして実装されており、キーの型に柔軟に対応しています。
実務では、データのまとまり(リスト、設定情報、DB結果の保持など)を扱う場面で広く使用されており、パフォーマンスや可読性の観点からも適切な操作が求められます。
3. 詳細解説
配列の作成と基本アクセス
もっとも基本的な配列の生成とアクセス方法です。
PHP
// インデックス配列
$colors = ["red", "green", "blue"];
echo $colors[1]; // 出力: green
// 連想配列
$user = ["name" => "Alice", "age" => 30];
echo $user["name"]; // 出力: Alice
PHP 5.4以降はarray()
の代わりに短縮構文[]
が使用可能です。
要素の追加と削除
末尾への追加、特定要素の削除には以下の関数が使われます。
PHP
// 追加
$colors[] = "yellow";
array_push($colors, "pink");
// 削除
unset($colors[1]); // "green"を削除
unset()
はキーの削除のみで、インデックスは再構成されません。
要素の存在確認と検索
値やキーの存在確認には以下を用います。
PHP
in_array("red", $colors); // true
array_key_exists("name", $user); // true
値の位置を検索したい場合は、array_search()
が便利です。
PHP
$key = array_search("blue", $colors); // 出力: 2
配列の結合と分解
配列を連結・分割する典型的な方法です。
PHP
// 結合
$merged = array_merge($colors, ["black", "white"]);
// 分割
$chunked = array_chunk($colors, 2);
文字列と配列の相互変換もよく使われます。
PHP
$str = "a,b,c";
$arr = explode(",", $str);
$joined = implode("-", $arr); // 出力: a-b-c
4. よくあるミス・誤解・落とし穴
unset後の配列インデックスのズレ
unset()
でインデックスを削除しても、再インデックス化されません。そのため、foreach
などで想定外の挙動をする場合があります。
PHP
$arr = ["a", "b", "c"];
unset($arr[1]);
print_r($arr);
// 出力: Array ( [0] => a [2] => c )
必要に応じてarray_values()
で再構成することが推奨されます。
キーの重複と上書き
連想配列で同じキーが複数回出現すると、後の値で上書きされます。これにより、意図しないデータの消失が発生する場合があります。
PHP
$arr = ["key" => "A", "key" => "B"];
echo $arr["key"]; // 出力: B
配列関数の戻り値と副作用
一部の配列関数(例:array_splice()
)は引数を直接変更します。戻り値と操作対象の両方に注意を払う必要があります。
5. まとめ
- 配列はインデックス配列・連想配列を中心に柔軟に使える構造
- 追加・削除・検索・結合などの操作パターンを適切に使い分ける
- unset後の再構成、キー重複、関数の副作用に注意が必要
- 実務では明示的な意図が伝わる記述が重要