Susun Berbilang Dimensi PHP: Menyahduplikasi Berdasarkan Nilai Tertentu
Soalan:
Memandangkan tatasusunan berbilang dimensi, bagaimana anda mengalih keluar sub-tatasusunan yang mengandungi nilai pendua dengan cekap untuk kunci tertentu?
Pernyataan Masalah:
Pertimbangkan tatasusunan berbilang dimensi berikut:
Array ( [0] => Array ( [0] => dave [1] => jones [2] => [email protected] ) [1] => Array ( [0] => john [1] => jones [2] => [email protected] ) [2] => Array ( [0] => bruce [1] => finkle [2] => [email protected] ) )
Tugasnya adalah untuk mengalih keluar sebarang sub -tatasusunan di mana alamat e-mel (indeks 2) muncul lebih daripada sekali. Dalam contoh ini, ia akan mengakibatkan pengalihan keluar sama ada sub-tatasusunan pertama atau ketiga.
Penyelesaian:
Penyelesaian yang mudah melibatkan penggunaan keunikan tatasusunan untuk menghapuskan alamat e-mel pendua :
$newArr = array(); foreach ($array as $val) { $newArr[$val[2]] = $val; } $array = array_values($newArr);
Penyelesaian ini memanfaatkan fakta bahawa kunci tatasusunan dalam PHP adalah unik. Dengan menggunakan alamat e-mel sebagai kunci tatasusunan, ia memastikan bahawa hanya kejadian terakhir alamat e-mel tertentu dikekalkan dalam tatasusunan yang terhasil.
Dengan menggunakan array_values() pada penghujungnya, kami menetapkan semula indeks tatasusunan kepada nombor berturut-turut, sambil mengekalkan penyahduaan data.
Nota:
Atas ialah kandungan terperinci Bagaimana untuk Menyahduplikasikan Tatasusunan Berbilang Dimensi PHP dengan Cekap Berdasarkan Kunci Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!