【PHP】Lesson4-3:配列の要素追加・削除の方法をマスターしよう

PHPで配列を操作する際に、要素の追加や削除は頻繁に行われます。
配列の要素を動的に操作することで、データの管理が柔軟に行えるようになります。
ここでは基本的な操作方法から応用例までを解説します。
Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:関数編
Lesson4:データ構造編
・Lesson4-1:配列の基本を理解しよう
・Lesson4-2:キーが文字列の配列を理解しよう
・Lesson4-3:配列の要素を追加/削除しよう ◁今回はココ
・Lesson4-4:配列を調査しよう
・Lesson4-5:配列を操作しよう
・Lesson4-6:配列を並び替えよう
・Lesson4-7:配列の多次元化を理解しよう
・確認問題4-1:ナインゲームを作ろう
・確認問題4-2:宝探しゲームを作ろう
・確認問題4-3:マルバツゲームを作ろう
Lesson5:クラス編
配列の要素を追加する方法|基本操作と具体例

配列に新しい要素を追加するには、いくつかの方法があります。
配列末尾に値を追加する方法
array_push()
関数を使用するか、配列のインデックスを指定して追加できます。
// 例1: array_push()を使用 $array = [1, 2, 3]; array_push($array, 4, 5); // 配列末尾に4と5を追加 print_r($array); // [1, 2, 3, 4, 5] // 例2: 直接追加 $array[] = 6; // 配列末尾に6を追加 print_r($array); // [1, 2, 3, 4, 5, 6]
任意位置に要素を挿入するテクニック
任意の位置に新しい要素を挿入するには、array_splice()
を使用します。
$array = [1, 2, 3]; array_splice($array, 1, 0, [10]); // インデックス1に10を挿入 print_r($array); // [1, 10, 2, 3]
配列の要素を削除する方法|基本と応用を解説
配列から要素を削除する方法もいくつかあります。
末尾・先頭の要素を削除する方法
array_pop()
とarray_shift()
を使用します。
// array_pop()で末尾を削除 $array = [1, 2, 3]; array_pop($array); print_r($array); // [1, 2] // array_shift()で先頭を削除 $array = [1, 2, 3]; array_shift($array); print_r($array); // [2, 3]
任意の位置から要素を削除する方法
array_splice()
で任意の位置の要素を削除できます。
$array = [1, 2, 3, 4]; array_splice($array, 1, 2); // インデックス1から2つの要素を削除 print_r($array); // [1, 4]
array_splice()の応用|追加・削除の応用技
array_splice()
は、要素の追加と削除の両方を同時に行うことができる便利な関数です。
array_splice(配列, 開始位置, 削除数, [挿入する要素]);
array_spliceで要素を置換する方法
既存の要素を新しい要素で置き換えます。
$array = [1, 2, 3, 4]; array_splice($array, 1, 2, [10, 20]); // インデックス1から2つを削除し10, 20を挿入 print_r($array); // [1, 10, 20, 4]
array_spliceで部分配列を削除する方法
特定の範囲の要素を削除することで部分配列を簡単に操作できます。
$array = [1, 2, 3, 4, 5]; array_splice($array, 2); // インデックス2以降を削除 print_r($array); // [1, 2]
まとめ|配列操作の基本をおさらいしよう
配列の要素の追加や削除は、PHPでデータを効率的に操作するための基本スキルです。
array_push()
やarray_splice()
などの関数を適切に使い分けることで、柔軟なデータ操作が可能になります。
初心者の方は、まず基本的な操作に慣れることから始めてください。
演習問題|PHPで配列要素の追加・削除を練習しよう

PHPで配列を操作するプログラムを作成し、要素の追加や削除の方法を学びましょう。
初期化した配列に対して以下の操作を行い、結果を確認してください。
配列の要素を末尾や先頭に追加する方法、特定の位置の要素を削除・置き換える方法を実践します。
この演習の要件
以下の要件に従ってコードを完成させてください。
- 配列の初期化:
fruits
という名前の配列を作成し、以下の要素を含むように初期化すること: 「りんご」「バナナ」「みかん」
- 要素の追加:
- 配列の末尾に「ぶどう」を追加すること。
- 配列の先頭に「さくらんぼ」を追加すること。
- 要素の削除:
- 配列の末尾から要素を1つ削除すること。
- 配列の先頭から要素を1つ削除すること。
- 特定の位置の操作:
- 配列のインデックス1の要素を削除し、代わりに「パイナップル」を追加すること。
- 結果の出力:
- 各操作後に配列の内容を出力し、正しい結果が得られることを確認すること。
ただし、以下のような実行結果となること。
初期の配列: りんご, バナナ, みかん 末尾に'ぶどう'を追加: りんご, バナナ, みかん, ぶどう 先頭に'さくらんぼ'を追加: さくらんぼ, りんご, バナナ, みかん, ぶどう 末尾の要素を削除: さくらんぼ, りんご, バナナ, みかん 先頭の要素を削除: りんご, バナナ, みかん インデックス1の要素を'パイナップル'に置き換え: りんご, パイナップル, みかん
解き方のヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)1:配列$fruitsを初期化し、要素に「りんご」「バナナ」「みかん」を設定
2:「初期の配列: 」と配列$fruitsを文字列結合して出力
3:array_push関数を使用して、配列$fruitsの末尾に「ぶどう」を追加
4:「末尾に’ぶどう’を追加: 」と配列$fruitsを文字列結合して出力
5:array_unshift関数を使用して、配列$fruitsの先頭に「さくらんぼ」を追加
6:「先頭に’さくらんぼ’を追加: 」と配列$fruitsを文字列結合して出力
7:array_pop関数を使用して、配列$fruitsの末尾の要素を削除
8:「末尾の要素を削除: 」と配列$fruitsを文字列結合して出力
9:array_shift関数を使用して、配列$fruitsの先頭の要素を削除
10:「先頭の要素を削除: 」と配列$fruitsを文字列結合して出力
11:array_splice関数を使用して、配列$fruitsのインデックス1の要素を削除し、「パイナップル」を挿入
12:「インデックス1の要素を’パイナップル’に置き換え: 」と配列$fruitsを文字列結合して出力
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
<?php // 配列の要素の追加と削除を学ぶ練習問題 // 配列を初期化 /*【穴埋め問題1】ここで$fruits配列を初期化し、要素に「りんご」「バナナ」「みかん」を設定してください。*/ echo "初期の配列: " . implode(", ", $fruits) . PHP_EOL; // 配列の末尾に要素を追加する // array_push()は、配列の末尾に要素を追加する関数です /*【穴埋め問題2】ここでarray_push関数を使って、配列$fruitsの末尾に「ぶどう」を追加してください。*/ echo "末尾に'ぶどう'を追加: " . implode(", ", $fruits) . PHP_EOL; // 配列の先頭に要素を追加する // array_unshift()は、配列の先頭に要素を追加する関数です /*【穴埋め問題3】ここでarray_unshift関数を使って、配列$fruitsの先頭に「さくらんぼ」を追加してください。*/ echo "先頭に'さくらんぼ'を追加: " . implode(", ", $fruits) . PHP_EOL; // 配列の末尾の要素を削除する // array_pop()は、配列の末尾から要素を削除する関数です /*【穴埋め問題4】ここでarray_pop関数を使って、配列$fruitsの末尾の要素を削除してください。*/ echo "末尾の要素を削除: " . implode(", ", $fruits) . PHP_EOL; // 配列の先頭の要素を削除する // array_shift()は、配列の先頭から要素を削除する関数です /*【穴埋め問題5】ここでarray_shift関数を使って、配列$fruitsの先頭の要素を削除してください。*/ echo "先頭の要素を削除: " . implode(", ", $fruits) . PHP_EOL; // 任意の位置の要素を削除・追加する // array_splice()は、配列の指定した位置に要素を挿入したり削除したりできます /*【穴埋め問題6】ここでarray_splice関数を使って、インデックス1の要素を削除し、「パイナップル」を挿入してください。*/ echo "インデックス1の要素を'パイナップル'に置き換え: " . implode(", ", $fruits) . PHP_EOL;
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
演習問題の答え合わせ
この問題の正解コードとその解説は以下の通りです。
クリックして開いて確認してください。
- 正解コード
-
<?php // 配列を初期化 $fruits = ["りんご", "バナナ", "みかん"]; echo "初期の配列: " . implode(", ", $fruits) . PHP_EOL; // 配列の末尾に要素を追加する // array_push()は、配列の末尾に要素を追加する関数です array_push($fruits, "ぶどう"); echo "末尾に'ぶどう'を追加: " . implode(", ", $fruits) . PHP_EOL; // 配列の先頭に要素を追加する // array_unshift()は、配列の先頭に要素を追加する関数です array_unshift($fruits, "さくらんぼ"); echo "先頭に'さくらんぼ'を追加: " . implode(", ", $fruits) . PHP_EOL; // 配列の末尾の要素を削除する // array_pop()は、配列の末尾から要素を削除する関数です array_pop($fruits); echo "末尾の要素を削除: " . implode(", ", $fruits) . PHP_EOL; // 配列の先頭の要素を削除する // array_shift()は、配列の先頭から要素を削除する関数です array_shift($fruits); echo "先頭の要素を削除: " . implode(", ", $fruits) . PHP_EOL; // 任意の位置の要素を削除・追加する // array_splice()は、配列の指定した位置に要素を挿入したり削除したりできます array_splice($fruits, 1, 1, ["パイナップル"]); // 上記はインデックス1の要素を削除し、代わりに'パイナップル'を挿入しています echo "インデックス1の要素を'パイナップル'に置き換え: " . implode(", ", $fruits) . PHP_EOL;
- 正解コードの解説
-
コードをブロックごとに分割して解説します。
配列の初期化
$fruits = ["りんご", "バナナ", "みかん"]; echo "初期の配列: " . implode(", ", $fruits) . PHP_EOL;
$fruits
という変数に配列を代入しています。この配列には初期状態で「りんご」「バナナ」「みかん」の3つの要素が含まれています。implode()
関数は、配列の要素を文字列として連結するための関数です。ここでは", "
を区切り文字として使用しています。PHP_EOL
は改行を表す特殊な定数で、コードを動かす環境に応じた適切な改行を挿入します。
配列の末尾に要素を追加
array_push($fruits, "ぶどう"); echo "末尾に'ぶどう'を追加: " . implode(", ", $fruits) . PHP_EOL;
array_push()
関数は、指定した要素(ここでは「ぶどう」)を配列の末尾に追加します。- この操作後、
$fruits
の内容は「りんご」「バナナ」「みかん」「ぶどう」となります。
配列の先頭に要素を追加
array_unshift($fruits, "さくらんぼ"); echo "先頭に'さくらんぼ'を追加: " . implode(", ", $fruits) . PHP_EOL;
array_unshift()
関数は指定した要素(ここでは「さくらんぼ」)を配列の先頭に追加します。- この操作後、
$fruits
の内容は「さくらんぼ」「りんご」「バナナ」「みかん」「ぶどう」となります。
配列の末尾の要素を削除
array_pop($fruits); echo "末尾の要素を削除: " . implode(", ", $fruits) . PHP_EOL;
array_pop()
関数は、配列の末尾にある要素を1つ削除します。- この操作後、
$fruits
の内容は「さくらんぼ」「りんご」「バナナ」「みかん」となります。
配列の先頭の要素を削除
array_shift($fruits); echo "先頭の要素を削除: " . implode(", ", $fruits) . PHP_EOL;
array_shift()
関数は、配列の先頭にある要素を1つ削除します。- この操作後、
$fruits
の内容は「りんご」「バナナ」「みかん」となります。
任意の位置の要素を削除・置き換え
array_splice($fruits, 1, 1, ["パイナップル"]); echo "インデックス1の要素を'パイナップル'に置き換え: " . implode(", ", $fruits) . PHP_EOL;
array_splice()
関数は、配列の特定の位置にある要素を削除したり、新しい要素を挿入したりするための関数です。- ここでは、
$fruits
配列のインデックス1の要素(「バナナ」)を削除し、「パイナップル」を挿入しています。 - この操作後、
$fruits
の内容は「りんご」「パイナップル」「みかん」となります。
まとめ
このコードを通じてPHPで配列の要素を動的に操作する方法を学びました。
特に以下の操作について理解できたはずです:
array_push()
とarray_unshift()
による要素の追加array_pop()
とarray_shift()
による要素の削除array_splice()
による特定の位置の操作
これらの関数は配列の基本的な操作であり、データの管理や処理において非常に役立ちます。
ぜひ繰り返し練習し、配列の操作に慣れていきましょう!