PHP 配列の重複排除時に空の値と null 値を処理するためのヒント: array_unique と array_filter を使用して、空の値と null 値を除外します。 array_unique を使用して、null と null 値を等しいものとして扱うカスタム比較関数を定義します。 array_reduce を使用して配列を反復処理し、空または null 値が含まれていない場合は項目を追加します。
PHP 配列の重複排除時に空の値と null 値を処理するためのヒント
質問
配列内の重複を削除するときは、空の値と null 値の処理方法を考慮する必要があります。デフォルトでは、空の文字列と null 値は異なる値として扱われるため、予期しない重複が発生する可能性があります。
ヒント
空の値と null 値を処理するための 3 つの一般的な手法:
array_unique
Function を使用するコロケーションarray_filter
関数:$arr = ['red', 'blue', 'green', null, '', 'red']; $filtered_arr = array_filter($arr); $result = array_unique($filtered_arr);
array_unique
関数を使用し、カスタム比較関数を定義します: $arr = ['red', 'blue', 'green', null, '', 'red']; function cmp($a, $b) { return $a === $b; } $result = array_unique($arr, SORT_REGULAR, 'cmp');
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 サイトの他の関連記事を参照してください。