PHP で配列を同一のオブジェクトとマージし、重複を削除するにはどうすればよいですか?

DDD
リリース: 2024-11-15 07:05:04
オリジナル
972 人が閲覧しました

How can I merge arrays with identical objects and eliminate duplicates in PHP?

同一のオブジェクトと配列をマージし、重複を削除する

複数の配列を 1 つの配列にマージすることは、プログラミングにおける一般的なタスクです。ただし、オブジェクトを含む配列を操作する場合は、データの整合性の問題を避けるために重複を慎重に処理することが重要です。

「email」プロパティを持つオブジェクトを含む 2 つの配列 $array1 と $array2 があるシナリオを考えてみましょう。一意の識別子として。目標は、これらの配列をマージして、重複する電子メール値が確実に削除されるようにすることです。

解決策

望ましい結果を達成するには、2 つの PHP 関数を使用できます。 array_merge( ) および array_unique().

  1. array_merge(): この関数は、複数の配列の要素を 1 つの配列にマージします。
  2. **array_unique(): これ関数は配列から重複する値を削除し、各値が 1 回だけ出現するようにします。

これらの関数を組み合わせることで、重複するメールを排除しながら 2 つの配列を効率的に結合できます。以下のコードは、このアプローチを示しています。

<?php

$array1 = [
    (object) ["email" => "gffggfg"],
    (object) ["email" => "[email protected]"],
    (object) ["email" => "wefewf"],
];

$array2 = [
    (object) ["email" => "[email protected]"],
    (object) ["email" => "wefwef"],
    (object) ["email" => "wefewf"],
];

// Merge the arrays
$mergedArray = array_merge($array1, $array2);

// Remove duplicate values
$uniqueArray = array_unique($mergedArray, SORT_REGULAR);

// Print the merged and unique array
print_r($uniqueArray);
?>
ログイン後にコピー

出力:

Array
(
    [0] => stdClass Object
        (
            [email] => gffggfg
        )

    [1] => stdClass Object
        (
            [email] => [email protected]
        )

    [2] => stdClass Object
        (
            [email] => wefewf
        )

    [3] => stdClass Object
        (
            [email] => wefwef
        )
)
ログイン後にコピー

ご覧のとおり、結果として得られる $uniqueArray には一意の電子メール値のみが含まれており、2 つの入力配列が正常にマージおよび重複排除されています。 .

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート