ホームページ >バックエンド開発 >PHPチュートリアル >PHP で配列を同一のオブジェクトとマージし、重複を削除するにはどうすればよいですか?

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

DDD
DDDオリジナル
2024-11-15 07:05:041070ブラウズ

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 回だけ出現するようにします。

Byこれらの関数を組み合わせると、重複した電子メールを排除しながら 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 サイトの他の関連記事を参照してください。

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