【PHP】レッスン4-03:配列の要素を追加・削除しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:配列の要素の追加と削除

この記事の練習問題を解くために必要な知識:
基礎文法・制御構造・関数(レッスン1~3)配列の基本キーが文字列の配列配列の要素の追加と削除配列の調査配列の操作配列の並び替え配列の多次元化

<<前のページ PHP記事一覧 次のページ>>

PHPの「配列の要素の追加と削除」とは

この章ではPHPにおける「配列の要素の追加と削除」の意味や使い方を学習します。用語の解説が不要な方はここをクリックして練習問題へ飛びましょう。




PHPで配列を操作する際に、要素の追加や削除は頻繁に行われます。

配列の要素を動的に操作することで、データの管理が柔軟に行えるようになります。

ここでは基本的な操作方法から応用例までを解説します。

配列の要素を追加する方法

配列に新しい要素を追加するには、いくつかの方法があります。

1. 配列の末尾に要素を追加

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]

2. 任意の位置に要素を追加

任意の位置に新しい要素を挿入するには、array_splice()を使用します。

$array = [1, 2, 3];
array_splice($array, 1, 0, [10]); // インデックス1に10を挿入
print_r($array); // [1, 10, 2, 3]

配列の要素を削除する方法

配列から要素を削除する方法もいくつかあります。

1. 配列の末尾または先頭から削除

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]

2. 任意の位置の要素を削除

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 = [1, 2, 3, 4];
array_splice($array, 1, 2, [10, 20]); // インデックス1から2つを削除し10, 20を挿入
print_r($array); // [1, 10, 20, 4]

応用例:部分配列の削除

特定の範囲の要素を削除することで部分配列を簡単に操作できます。

$array = [1, 2, 3, 4, 5];
array_splice($array, 2); // インデックス2以降を削除
print_r($array); // [1, 2]

まとめ

配列の要素の追加や削除は、PHPでデータを効率的に操作するための基本スキルです。

array_push()array_splice()などの関数を適切に使い分けることで、柔軟なデータ操作が可能になります。

初心者の方は、まず基本的な操作に慣れることから始めてください。

PHPの配列要素追加・削除の練習問題

PHPで配列を操作するプログラムを作成し、要素の追加や削除の方法を学びましょう。

初期化した配列に対して以下の操作を行い、結果を確認してください。

配列の要素を末尾や先頭に追加する方法、特定の位置の要素を削除・置き換える方法を実践します。

この問題の要件

以下の要件に従ってコードを完成させてください。

  1. 配列の初期化:
    • fruitsという名前の配列を作成し、以下の要素を含むように初期化すること: 「りんご」「バナナ」「みかん」
  2. 要素の追加:
    • 配列の末尾に「ぶどう」を追加すること。
    • 配列の先頭に「さくらんぼ」を追加すること。
  3. 要素の削除:
    • 配列の末尾から要素を1つ削除すること。
    • 配列の先頭から要素を1つ削除すること。
  4. 特定の位置の操作:
    • 配列のインデックス1の要素を削除し、代わりに「パイナップル」を追加すること。
  5. 結果の出力:
    • 各操作後に配列の内容を出力し、正しい結果が得られることを確認すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

初期の配列: りんご, バナナ, みかん
末尾に'ぶどう'を追加: りんご, バナナ, みかん, ぶどう
先頭に'さくらんぼ'を追加: さくらんぼ, りんご, バナナ, みかん, ぶどう
末尾の要素を削除: さくらんぼ, りんご, バナナ, みかん
先頭の要素を削除: りんご, バナナ, みかん
インデックス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;

正解コードの解説

今回のPHPコードでは「配列の要素の追加と削除」を学ぶことを目的としています。

以下にコードをブロックごとに分割して、使われている文法や関数を詳しく解説します。

配列の初期化

$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で配列の要素を動的に操作する方法を学びました。

特に以下の操作について理解できたはずです:

  1. array_push()array_unshift() による要素の追加
  2. array_pop()array_shift() による要素の削除
  3. array_splice() による特定の位置の操作

これらの関数は配列の基本的な操作であり、データの管理や処理において非常に役立ちます。

ぜひ繰り返し練習し、配列の操作に慣れていきましょう!

<<前のページ PHP記事一覧 次のページ>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    PHPのテキスト&問題集トップへ戻る
    トップページへ戻る