ホームページ >バックエンド開発 >PHPチュートリアル >PHP で配列の重複を排除し、キー名を保持する最良の方法

PHP で配列の重複を排除し、キー名を保持する最良の方法

PHPz
PHPzオリジナル
2024-05-01 13:00:021054ブラウズ

PHP で配列の重複を排除し、キー名を保持する最良の方法は 2 つあります: array_unique(): 重複を排除できますが、キー名は保持されず、配列のインデックスが再作成されます。カスタム関数 array_unique_preserve_keys(): ハッシュ値を使用して値を比較することで、重複を削除し、キー名を保持できます。

PHP 中对数组去重并保持键名的最佳方法

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 サイトの他の関連記事を参照してください。

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