PHP でキーではない値による配列の削除を実行する
Minahil Noor
2023年1月30日
-
関数
array_search()
とunset()
を使って PHP でキーではない値による配列の削除を行う -
関数
array_diff()
を用いて、PHP でキーではなく値による配列の削除を行う
この記事では、PHP で配列から値を削除する方法を紹介します。
関数 array_search()
と unset()
を使って PHP でキーではない値による配列の削除を行う
キーではなく、値で配列の削除を行う場合の主な手順は、まず値を求めることです。値を見つけてから削除することもできます。配列を削除するには、array_search()
関数を使って値を見つけ、unset()
関数を使って削除します。unset()
関数は変数をリセットします。これらの関数を利用するための正しい構文は以下の通りです。
array_search()
の構文
array_search($value, $array, $strict);
組み込み関数 array_search()
は 3つのパラメータがあります。パラメータの詳細は以下の通りです。
パラメータ | 説明 | |
---|---|---|
$value |
強制的 | 配列の中で検索したい値です。 |
$array |
強制的 | これは与えられた値を検索する配列です。 |
$strict |
任意 | このパラメータが True に設定されている場合、この関数は配列内の同一の要素も検索します。 |
この関数は与えられた値のキーを返します。
unset()
の構文
unset($variable1, $variable2, ..., $variableN);
組み込み関数 unset()
は複数のパラメータがあります。パラメータの詳細は以下の通りです。
パラメータ | 説明 | |
---|---|---|
$variable1 、$variable2 、$variableN . |
強制的 | 設定を解除したい変数またはデータ構造です。少なくとも 1つの変数は必須です。 |
この関数は何も返しません。
PHP における配列から値を削除する例
以下のプログラムは、これらの関数を使用して PHP で配列の削除を実行する方法を示しています。
<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Daffodil","Daisy");
echo("Array before deletion: \n");
var_dump($array);
$value = "Jasmine";
if (($key = array_search($value, $array)) !== false) {
unset($array[$key]);
}
echo("Array after deletion: \n");
var_dump($array);
?>
出力:
Array before deletion:
array(6) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[2]=>
string(7) "Jasmine"
[3]=>
string(8) "Hibiscus"
[4]=>
string(8) "Daffodil"
[5]=>
string(5) "Daisy"
}
Array after deletion:
array(5) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[3]=>
string(8) "Hibiscus"
[4]=>
string(8) "Daffodil"
[5]=>
string(5) "Daisy"
}
関数 array_diff()
を用いて、PHP でキーではなく値による配列の削除を行う
PHP では、array_diff()
関数を使って、キーではなく値による配列の削除を行うこともできます。この関数は、与えられた配列と別の配列の差分を計算します。この関数を使用するための正しい構文は以下の通りです。
構文
array_diff($array, $Arr1, $Arr2, ...,$ArrN);
関数 array_diff()
は N+1 個のパラメータを受け付ける。パラメータの詳細は以下の通りです。
パラメータ | 説明 | |
---|---|---|
$array |
強制的 | これは、値を削除するためのメインの配列です。 |
$Arr1 、$Arr2 、$ArrN . |
強制的 | 削除したい配列です。この関数は配列との差分を取り、配列があれば配列から削除します。 |
配列の削除をキーではなく値で行うプログラムは以下のようになります。
<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Daffodil","Daisy");
echo("Array before deletion: \n");
var_dump($array);
$value = array("Jasmine");
$array = array_diff( $array, $value);
echo("Array after deletion: \n");
var_dump($array);
?>
出力:
Array before deletion:
array(6) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[2]=>
string(7) "Jasmine"
[3]=>
string(8) "Hibiscus"
[4]=>
string(8) "Daffodil"
[5]=>
string(5) "Daisy"
}
Array after deletion:
array(5) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[3]=>
string(8) "Hibiscus"
[4]=>
string(8) "Daffodil"
[5]=>
string(5) "Daisy"
}