ホームページ >バックエンド開発 >PHPチュートリアル >多次元 PHP 配列から重複するサブ配列を削除するにはどうすればよいですか?

多次元 PHP 配列から重複するサブ配列を削除するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-25 09:34:10424ブラウズ

How Can I Remove Duplicate Sub-arrays from a Multi-Dimensional PHP Array?

多次元 PHP 配列からの重複の削除

PHP で多次元配列を操作する場合、多くの場合、重複要素を削除する必要があります。これは、複数のサブ配列に同一の値が出現する可能性がある大規模なデータセットを扱う場合に特に便利です。

次の例を考えてみましょう。名前、電子メール、その他の情報を含むサブ配列を持つ 2D 配列があります。 :

$array = [
    [
        'name' => 'Dave',
        'email' => 'dave@example.com',
    ],
    [
        'name' => 'John',
        'email' => 'john@example.com',
    ],
    [
        'name' => 'Bruce',
        'email' => 'bruce@example.com',
    ],
    [
        'name' => 'John',
        'email' => 'john@example.com',
    ],
];

この例では、同じ電子メール アドレス ('john@example.com') を持つ重複したエントリがあります。重複したサブ配列を削除するには、次のスニペットを使用して配列インデックスの一意性を利用できます。

$newArr = [];
foreach ($array as $val) {
    $newArr[$val['email']] = $val; 
}
$array = array_values($newArr);

サブ配列を反復処理し、電子メール アドレスを新しい配列のキーとして使用することで、重複する値は最後に一致したサブ配列で上書きします。次に、array_values() 関数を使用して配列インデックスをリセットし、重複排除された配列を作成します。

$array = [
    [
        'name' => 'Dave',
        'email' => 'dave@example.com',
    ],
    [
        'name' => 'John',
        'email' => 'john@example.com',
    ],
    [
        'name' => 'Bruce',
        'email' => 'bruce@example.com',
    ],
];

この手法は、指定されたキーに基づいて重複値を効果的に削除し、重複排除された多次元配列を残します。 .

以上が多次元 PHP 配列から重複するサブ配列を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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