Bagaimanakah saya boleh menggabungkan tatasusunan dengan objek yang sama dan menghapuskan pendua dalam PHP?

DDD
Lepaskan: 2024-11-15 07:05:04
asal
971 orang telah melayarinya

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

Menggabungkan Tatasusunan dengan Objek Serupa dan Menghapuskan Pendua

Menggabungkan berbilang tatasusunan menjadi satu tatasusunan ialah tugas biasa dalam pengaturcaraan. Walau bagaimanapun, apabila bekerja dengan tatasusunan yang mengandungi objek, adalah penting untuk mengendalikan pendua dengan berhati-hati untuk mengelakkan isu integriti data.

Pertimbangkan senario di mana anda mempunyai dua tatasusunan, $array1 dan $array2, yang mengandungi objek dengan sifat "e-mel" sebagai pengecam unik. Matlamat anda adalah untuk menggabungkan tatasusunan ini, memastikan nilai e-mel pendua dialih keluar.

Penyelesaian

Untuk mencapai hasil yang diinginkan, anda boleh menggunakan dua fungsi PHP: array_merge( ) dan array_unique().

  1. array_merge(): Fungsi ini menggabungkan elemen daripada berbilang tatasusunan menjadi satu tatasusunan.
  2. **array_unique(): Ini fungsi mengalih keluar nilai pendua daripada tatasusunan, memastikan setiap nilai berlaku sekali sahaja.

Dengan menggabungkan fungsi ini, anda boleh menggabungkan dua tatasusunan dengan cekap sambil menghapuskan e-mel pendua. Kod di bawah menggambarkan pendekatan ini:

<?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);
?>
Salin selepas log masuk

Output:

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

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

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

    [3] => stdClass Object
        (
            [email] => wefwef
        )
)
Salin selepas log masuk

Seperti yang anda lihat, $uniqueArray yang terhasil hanya mengandungi nilai e-mel unik, berjaya menggabungkan dan menyahduplikasi dua tatasusunan input .

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggabungkan tatasusunan dengan objek yang sama dan menghapuskan pendua dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan