[PHP]array_search()で連想配列の特定の値を削除するには?

PHP

どうも、ちょげ(@chogetarou)です。

array_search()を使って連想配列(associative array)の特定の値を削除する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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
)

コメント

タイトルとURLをコピーしました