PHP でキーではない値による配列の削除を実行する
Minahil Noor
2023年1月30日
PHP
PHP Array
-
関数
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"
}
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe