ホームページ >バックエンド開発 >PHPチュートリアル >PHP で配列の重複を排除し、キー名を保持する最良の方法
PHP で配列の重複を排除し、キー名を保持する最良の方法は 2 つあります: array_unique(): 重複を排除できますが、キー名は保持されず、配列のインデックスが再作成されます。カスタム関数 array_unique_preserve_keys(): ハッシュ値を使用して値を比較することで、重複を削除し、キー名を保持できます。
PHP で配列の重複を排除し、キー名を保持する最良の方法
PHP では、配列の重複排除とは、重複した値を削除することを意味します。キー名は変更しないままにします。これは、複数のフォーム送信やデータベース クエリなど、重複する要素が含まれる可能性があるさまざまなソースからのデータを操作する場合に便利です。
方法 1: array_unique()
array_unique() 関数は、配列の重複を排除するために使用される組み込みの PHP 関数です。入力として配列を受け取り、重複した値が削除された新しい配列を返します。ただし、array_unique() はキー名を保持せず、配列のインデックスを 0 から再作成します。
例:
$arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a']; $result = array_unique($arr); print_r($result); // 输出:['a', 'b', 'c', 'd', 'e']
方法 2: カスタム関数
キー名を維持するために、カスタム関数を作成できます。配列の重複を排除します。このメソッドは連想配列を使用し、各値のハッシュを比較して重複しているかどうかを判断します。
例:
function array_unique_preserve_keys($arr) { $hash = []; $unique_arr = []; foreach ($arr as $key => $value) { $hash_value = md5($value); if (!isset($hash[$hash_value])) { $hash[$hash_value] = 1; $unique_arr[$key] = $value; } } return $unique_arr; } $arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a']; $result = array_unique_preserve_keys($arr); print_r($result); // 输出:['a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e']
実用的なケース:
重複するユーザー名と重複を含むフォーム送信からの配列があると仮定します。電子メールアドレス。 array_unique_preserve_keys() 関数を使用して重複を排除すると、ユーザーのユーザー名を維持したまま重複レコードを削除できます。
rree以上がPHP で配列の重複を排除し、キー名を保持する最良の方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。