PHP で配列から要素を削除する方法
-
PHP の配列から要素を削除するために
unset()関数を使用する -
PHP の配列から要素を削除するために
array_splice()関数を使用する -
PHP の配列から要素を削除するために
array_diff()関数を使用する
この記事では、PHP の配列から要素を削除するメソッドを紹介します。
unset()関数を使用するarray_splice()関数を使用するarray_diff()関数を使用する
PHP の配列から要素を削除するために unset() 関数を使用する
組み込み関数 unset() は、変数に格納されている値を削除するために使用されます。ローカル変数にのみ適用されます。グローバル変数での動作は反映されません。この関数を使用して、配列から要素を削除できます。この関数を使用するための正しい構文は次のとおりです
unset($variableName);
必須パラメーターが 1つあります。値を削除する変数は、この関数にパラメーターとして渡されます。
<?php
//Declare the array
$flowers = array(
"Rose",
"Lili",
"Jasmine",
"Hibiscus",
"Tulip",
"Sun Flower",
"Daffodil",
"Daisy");
unset($flowers[1]);
echo "The array is:\n";
print_r($flowers);
?>
この関数は、一度に 1つの値を削除できます。配列の名前と要素のインデックス($flowers[1])がパラメーターとして渡されます。この関数はインデックス値を変更しません。インデックス値は以前と同じままです。
出力:
The array is:
Array
(
[0] => Rose
[2] => Jasmine
[3] => Hibiscus
[4] => Tulip
[5] => Sun Flower
[6] => Daffodil
[7] => Daisy
)
ご覧のように、unset 関数を適用すると、インデックス 1 が失われます。
PHP の配列から要素を削除するために array_splice() 関数を使用する
関数 array_splice() を使用して、要素を配列に追加したり、要素を配列から削除したりします。この関数を使用するための正しい構文は次のとおりです
array_splice($arrayName, $startingIndex, $numOfElements, $array2Name);
4つのパラメーターがあります。
$arrayNameは必須パラメーターです。要素が削除されるのは配列です。$startingIndexは、削除する要素のインデックスです。$numOfElementsは、開始インデックスから削除する要素の数です。$array2Nameは、追加する要素のarrayです。
$numOfElements と $array2Name はオプションです。
<?php
//Declare the array
$flowers = array(
"Rose",
"Lili",
"Jasmine",
"Hibiscus",
"Tulip",
"Sun Flower",
"Daffodil",
"Daisy");
array_splice($flowers, 4, 3);
echo "The array is:\n";
print_r($flowers);
?>
配列 $flowers は、開始インデックス 4 および削除する要素の数 3 と共に、この関数にパラメーターとして渡されます。このようにして、配列から複数の要素を削除できます。
出力:
The array is:
Array
(
[0] => Rose
[1] => Lili
[2] => Jasmine
[3] => Hibiscus
[4] => Daisy
)
unset とは異なり、array_splice 関数は自動的にキーのインデックスを再作成します。
Daisy の新しいインデックスは 4 ですが、元のインデックスはありません-その前の 3つの要素を削除した後の 7。
PHP の配列から要素を削除するために array_diff() 関数を使用する
組み込み関数 array_diff() は、2つ以上の配列の違いを検出します。インデックスに影響を与えずに、配列から複数の値を削除するために使用できます。この関数を使用するための正しい構文は次のとおりです。
array_diff($array1, $array2, $array3, ... , $arrayN);
パラメータとして N 個の配列を使用します。最初の配列を他のすべての配列と比較し、他の配列には存在しない最初の配列のすべての要素を含む配列を返します。
<?php
//Declare the array
$flowers = array(
"Rose",
"Lili",
"Jasmine",
"Hibiscus",
"Tulip",
"Sun Flower",
"Daffodil",
"Daisy");
$flowers = array_diff($flowers, array("Rose","Lili"));
echo "The array is:\n";
print_r($flowers);
?>
ここで、渡した最初の配列は $flowers で、2 番目の配列には $flowers から削除する要素が含まれています。この関数は、配列の要素のインデックスを変更しません。
出力:
The array is:
Array
(
[2] => Jasmine
[3] => Hibiscus
[4] => Tulip
[5] => Sun Flower
[6] => Daffodil
[7] => Daisy
)