Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh menggabungkan berbilang tatasusunan PHP sambil mengalih keluar nilai pendua?
Menggabung dan Menyahduplikasi Tatasusunan dalam PHP
Apabila bekerja dengan tatasusunan PHP, selalunya perlu untuk menggabungkan berbilang tatasusunan menjadi satu tatasusunan. Walau bagaimanapun, adalah penting untuk mengelakkan nilai pendua dalam tatasusunan akhir.
Menggabungkan Dua Tatasusunan
Untuk menggabungkan dua tatasusunan, anda boleh menggunakan fungsi array_merge():
$array1 = [ (object) [ 'ID' => 749, 'post_author' => 1, 'post_date' => '2012-11-20 06:26:07', 'post_date_gmt' => '2012-11-20 06:26:07' ] ]; $array2 = [ (object) [ 'ID' => 749, 'post_author' => 1, 'post_date' => '2012-11-20 06:26:07', 'post_date_gmt' => '2012-11-20 06:26:07' ] ]; $mergedArray = array_merge($array1, $array2);
$mergedArray akan mengandungi kedua-dua elemen daripada $array1 dan $array2. Walau bagaimanapun, ia juga akan mengandungi objek pendua daripada $array2, yang mungkin tidak diingini.
Mengalih Keluar Pendua
Untuk mengalih keluar pendua, anda boleh menggunakan array_unique() fungsi. Fungsi ini mengambil tatasusunan sebagai hujahnya dan mengembalikan tatasusunan baharu dengan nilai pendua dialih keluar. Anda boleh menggabungkan array_merge() dan array_unique() untuk menggabungkan tatasusunan dan mengalih keluar pendua:
$mergedAndUniquedArray = array_unique(array_merge($array1, $array2), SORT_REGULAR);
Bendera SORT_REGULAR memastikan tatasusunan diisih mengikut nilai elemennya sebelum pendua dialih keluar. Ini boleh menjadi penting jika anda ingin mengekalkan susunan tatasusunan asal apabila menggabungkannya.
Anda juga boleh menggunakan gabungan array_map() dan spl_object_hash() untuk mengalih keluar objek pendua daripada tatasusunan:
$removeDuplicatesUsingObjects = function ($object) { return spl_object_hash($object); }; $mergedAndUniquedArray = array_map($removeDuplicatesUsingObjects, array_merge($array1, $array2)); $mergedAndUniquedArray = array_unique($mergedAndUniquedArray);
Kaedah ini menggunakan fungsi spl_object_hash() untuk menjana pengecam unik bagi setiap objek, dan kemudian mengalih keluar pendua berdasarkan pengecam ini.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menggabungkan berbilang tatasusunan PHP sambil mengalih keluar nilai pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!