ホームページ  >  記事  >  バックエンド開発  >  PHP 配列の重複排除時に空の値と null 値を処理するためのヒント

PHP 配列の重複排除時に空の値と null 値を処理するためのヒント

王林
王林オリジナル
2024-04-26 17:03:01331ブラウズ

PHP 配列の重複排除時に空の値と null 値を処理するためのヒント: array_unique と array_filter を使用して、空の値と null 値を除外します。 array_unique を使用して、null と null 値を等しいものとして扱うカスタム比較関数を定義します。 array_reduce を使用して配列を反復処理し、空または null 値が含まれていない場合は項目を追加します。

PHP 数组去重时处理空值和 null 值的技巧

PHP 配列の重複排除時に空の値と null 値を処理するためのヒント

質問

配列内の重複を削除するときは、空の値と null 値の処理方法を考慮する必要があります。デフォルトでは、空の文字列と null 値は異なる値として扱われるため、予期しない重複が発生する可能性があります。

ヒント

空の値と null 値を処理するための 3 つの一般的な手法:

  1. array_uniqueFunction を使用するコロケーションarray_filter関数:
$arr = ['red', 'blue', 'green', null, '', 'red'];

$filtered_arr = array_filter($arr);
$result = array_unique($filtered_arr);
  1. array_unique関数を使用し、カスタム比較関数を定義します:
$arr = ['red', 'blue', 'green', null, '', 'red'];

function cmp($a, $b) {
    return $a === $b;
}

$result = array_unique($arr, SORT_REGULAR, 'cmp');
  1. array_reduce 関数を使用します:
$arr = ['red', 'blue', 'green', null, '', 'red'];

$result = array_reduce($arr, function($carry, $item) {
    if (!in_array($item, $carry) || $item !== '') {
        $carry[] = $item;
    }
    return $carry;
}, []);

実際のケース

次の例は、最初の手法を使用して、空の値と null 値を含む配列をフィルター処理して重複を排除する方法を示しています。

$users = [
    ['name' => 'John Doe', 'age' => 30],
    ['name' => 'Jane Doe', 'age' => 25],
    ['name' => 'John Doe', 'age' => 30], // 重复项
    ['name' => null, 'age' => null], // 空值
];

$unique_users = array_filter($users);
$unique_users = array_unique($unique_users);

print_r($unique_users);

出力:

Array
(
    [0] => Array
        (
            [name] => John Doe
            [age] => 30
        )
    [1] => Array
        (
            [name] => Jane Doe
            [age] => 25
        )
)

以上がPHP 配列の重複排除時に空の値と null 値を処理するためのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。