Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya boleh menggabungkan tatasusunan dengan objek yang sama dan menghapuskan pendua dalam PHP?

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

DDD
DDDasal
2024-11-15 07:05:041059semak imbas

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, 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(): Fungsi ini 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);
?>

Output:

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

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

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

    [3] => stdClass Object
        (
            [email] => wefwef
        )
)

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!

Kenyataan:
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