【6日でできるPHP入門】配列の操作

 配列は、PHPで複数のデータを効率よく管理・操作するための非常に重要な仕組みです。しかし「配列」は作って終わりではありません。現実の開発では、値の変更・追加・削除や順序の入れ替えなど、さまざまな「配列操作」が必要になります。この記事では、配列の要素の追加・削除・変更・並べ替え・検索など、多様な操作方法について、具体的なサンプルを使って解説していきます。

1. 配列要素の追加・変更・削除

1.1. 配列の生成と値の変更

まずは基本となる「配列の生成」「要素の値の変更」についてです。

操作内容サンプルコード結果例
配列の生成$colors = ["赤", "青", "黄"];["赤", "青", "黄"]
値の変更$colors[1] = "緑";["赤", "緑", "黄"]
要素の追加$colors[] = "白";["赤", "緑", "黄", "白"]

サンプルプログラム

ファイル名: lesson37_1.php

<?php
$colors = ["赤", "青", "黄"];
$colors[1] = "緑";    // 2番目を変更
$colors[] = "白";     // 配列末尾に追加
print_r($colors);
?>

実行結果

1.2. 配列の要素削除・先頭/末尾の操作

PHPには配列の「先頭」「末尾」の要素を簡単に削除・追加できる便利な関数があります。

関数主な用途サンプルコード説明
array_pop配列の末尾を削除array_pop($colors);最後の要素が消える
array_push配列の末尾に要素を追加array_push($colors, "紫");複数同時追加も可能
array_shift配列の先頭を削除array_shift($colors);先頭の要素が消える
array_unshift配列の先頭に要素を追加array_unshift($colors, "橙");先頭に追加、複数も可
unset任意の添字の要素を削除unset($colors[1]);特定の要素を消す
array_values添字を振りなおして再配列化$colors = array_values($colors);添字の隙間をなくす

サンプルプログラム

ファイル名: lesson37_2.php

<?php
$colors = ["赤", "青", "黄"];
array_pop($colors);               // 末尾の「黄」を削除
array_push($colors, "紫", "白");  // 末尾に2つ追加
array_shift($colors);             // 先頭の「赤」を削除
array_unshift($colors, "橙");     // 先頭に「橙」を追加
unset($colors[1]);                // 添字1(「紫」)を削除
$colors = array_values($colors);  // 添字の振りなおし
print_r($colors);
?>

実行結果

2.配列操作の主な関数と使い方

2.1. 配列の並べ替え・検索

配列を「並び替え」たり、「値を探したり」する関数もあります。

関数主な用途サンプル
sort値を昇順に並び替えるsort($numbers);
rsort値を降順に並び替えるrsort($numbers);
in_array指定値が含まれるか調べるin_array("緑", $colors);
array_search値の位置(添字)を調べるarray_search("白", $colors);

サンプルプログラム

ファイル名: lesson37_3.php

<?php
$numbers = [7, 2, 5];
sort($numbers);              // 昇順
print_r($numbers);
rsort($numbers);             // 降順
print_r($numbers);

$colors = ["赤", "青", "緑"];
if (in_array("緑", $colors)) {
    echo "<br>緑は含まれています<br>";
}
$idx = array_search("青", $colors);
echo "青は{$idx}番目です";
?>

実行結果

2.2. 配列の結合や分割

  • 複数の配列をまとめたいときは array_merge
  • 配列を区切り文字で1つの文字列に変換したいときは implode
  • 逆に、文字列を区切りで分割して配列にしたいときは explode
関数主な用途サンプルコード
array_merge複数配列の結合$new = array_merge($a, $b);
implode配列→文字列に変換$str = implode(",", $colors);
explode文字列→配列に変換$ary = explode(",", $str);

サンプルプログラム

ファイル名: lesson37_4.php

<?php
$a = ["A", "B"];
$b = ["C", "D"];
$new = array_merge($a, $b);
print_r($new);
echo "<br>";

$colors = ["赤", "青", "緑"];
$str = implode("-", $colors);
echo $str; // 赤-青-緑
echo "<br>";

$ary = explode("-", $str);
print_r($ary);
?>

実行結果

3.配列操作の応用例

3.1. 配列の全要素を処理(foreach)

配列の全要素を1つずつ処理したい場合はforeach文が便利です。

ファイル名: lesson37_5.php

<?php
$fruits = ["りんご", "バナナ", "みかん"];
foreach ($fruits as $fruit) {
    echo "フルーツ: {$fruit}<br>";
}
?>

実行結果

まとめ

  • 配列の要素の追加・削除・変更には専用の関数や文法が用意されている。
  • 配列の並び替え・検索・結合・分割も簡単にできる。
  • 添字が欠番になる場合はarray_valuesで振り直し。
  • 現場のPHP開発では配列操作のパターンを知っているかどうかが重要!

 配列の操作はPHPプログラミングの基礎力の一つです。いろいろなサンプルを実際に書いて試すことで、配列の理解がどんどん深まります。