PHP 速習チュートリアル

PHP 配列要素の削除

1. PHP 配列要素の削除

PHP では、用途に応じて複数の関数を使用して Array(配列)の Item(要素)を削除できます。

  • array_splice() - 開始位置と長さを指定して、Array の一部を削除します。
  • unset() - 特定の Key(キー)に関連付けられた要素を削除します。
  • array_diff() - Associative Array(連想配列)から特定の要素を取り除きます。
  • array_pop() - Array の最後の要素を削除します。
  • array_shift() - Array の最初の要素を削除します。

2. PHP array_splice() 関数

array_splice() 関数では、削除を開始する Index(インデックス)と、削除する項目の数を指定します。
削除後、Array は自動的に再インデックス(0 から順に振り直し)されます。

2.1 例:2番目の要素を削除する

$cars = array("Volvo", "BMW", "Toyota");
// インデックス 1 から 1 つ削除
array_splice($cars, 1, 1); 
var_dump($cars);

2.2 複数の要素を削除する

複数の項目を削除する場合、array_splice()Length パラメーターに削除したい数を指定します。

例:2番目(インデックス 1)から 2 つの要素を削除する

$cars = array("Volvo", "BMW", "Toyota");
array_splice($cars, 1, 2);
var_dump($cars);

3. PHP unset() 関数

unset() 関数を使用して、既存の Array 要素を削除することもできます。

重要:unset() 関数は Array の再インデックスを行いません。そのため、インデックス 1 の要素を削除した場合、他の要素(インデックス 0, 2, 3 など)は元のインデックスを保持し、インデックスのシーケンスに「欠番(ギャップ)」が生じます。

3.1 例:2番目の要素を削除する

$cars = array("Volvo", "BMW", "Toyota");
unset($cars[1]);
var_dump($cars);

3.2 複数の要素を削除する

unset() は無制限に引数を取ることができるため、一度に複数の Array 要素を削除することが可能です。

例:1番目と2番目の要素を削除する

$cars = array("Volvo", "BMW", "Toyota");
unset($cars[0], $cars[1]);
var_dump($cars);

4. 連想配列からの要素削除

Associative Array(連想配列)から要素を削除する場合も、unset() 関数を使用します。削除したい要素の Key を指定してください。

4.1 例:"model" キーを削除する

$cars = array("brand" => "Ford", "model" => "Mustang", "year" => 1964);
unset($cars["model"]);
var_dump($cars);

5. PHP array_diff() 関数

array_diff() 関数を使用して、Associative Array から特定の要素を取り除くこともできます。
この関数は、指定された要素を除外した新しい配列を返します。

5.1 例:"Mustang" と 1964 を除外した新しい配列を作成する

$cars = array("brand" => "Ford", "model" => "Mustang", "year" => 1964);
$newarray = array_diff($cars, ["Mustang", 1964]);
var_dump($newarray);

       注意:array_diff() 関数は、Key(キー)ではなく Value(値)をパラメーターとして受け取ります。

6. PHP array_pop() - 末尾の要素を削除

array_pop() 関数は、Array の最後にある要素を削除します。

6.1 例:最後の要素を削除する

$cars = array("Volvo", "BMW", "Toyota");
array_pop($cars);
var_dump($cars);

7. PHP array_shift() - 先頭の要素を削除

array_shift() 関数は、Array の最初にある要素を削除します。

7.1 例:最初の要素を削除する

$cars = array("Volvo", "BMW", "Toyota");
array_shift($cars);
var_dump($cars);