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

PHP

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

array_filter()を使って連想配列(associative array)から指定した値を削除する方法を紹介します。

スポンサーリンク

方法

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

array_filter()を使って連想配列(associative array)から特定の値を削除するには、2つの引数を使います。

まず、array_filter()を呼び出します。

array_filter()の第1引数に対象の連想配列、第2引数に1つの引数を持つ関数を指定します。

そして、第2引数の関数で、特定の値でない引数で「true」となる条件式を返します。

//arr=対象の連想配列, del_value=削除する値
$result = array_filter($arr, function ($value) { return $value !== del_value; });

上記のarray_filter()は、第1引数の連想配列(associative array)から特定の値を削除した連想配列を生成します。

array_filter()は、対象の連想配列に影響を与えません。

使用例

<?php
$numbers = [
    "one" => 1,
    "サン" => 3,
    "two" => 2,
    "three" => 3,
    "さん" => 3,
    "三" => 3,
    "four" => 4,
    "five" => 5,
    "参" => 3,
];

$result = array_filter($numbers, function ($value) { return $value !== 3; });

print_r($result);
?>
出力:
Array
(
    [one] => 1
    [two] => 2
    [four] => 4
    [five] => 5
)

コメント

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