どうも、ちょげ(@chogetarou)です。
array_search()を使って連想配列(associative array)の特定の値を削除する方法を紹介します。
方法

array_search()を使って連想配列(associative array)の特定の値を削除するには、unset()を使います。
まず、if文で条件分岐します。
if文の条件式でarray_search()を呼び出し、array_search()の結果を変数に代入します。
また、array_search()の結果が「false」以外であることを条件にします。
array_seach()の第1引数に削除する値、第2引数に対象の連想配列を指定します。
そして、if文のブロックでunset()を呼び出します。
unset()の引数で、連想配列のarray_search()の結果のキーにアクセスします。
//arr=対象の配列, value=削除する値
if (($key = array_search(value, $arr)) !== false) {
unset($arr[$key]);
}
上記のunset()は、対象の連想配列(associative array)からarray_search()の第1引数の値を削除します。
使用例
<?php
$numbers = [
"one" => 1,
"two" => 2,
"three" => 3,
"four" => 4,
"five" => 5,
];
if (($key = array_search(3, $numbers)) !== false) {
unset($numbers[$key]);
}
print_r($numbers);
?>
出力:
Array
(
[one] => 1
[two] => 2
[four] => 4
[five] => 5
)
コメント