PHP ialah bahasa pengaturcaraan berkuasa yang menyokong tatasusunan berbilang dimensi dan penyahduplikasian tatasusunan. Semasa proses pembangunan, kita selalunya perlu menggunakan tatasusunan berbilang dimensi untuk pengurusan dan pemprosesan data, dan penyahduplikasian data juga penting. Jadi persoalannya, bolehkah tatasusunan berbilang dimensi dalam PHP diduplikasi? Artikel ini akan membincangkan kaedah deduplikasi tatasusunan berbilang dimensi dalam PHP.
1. PHP tatasusunan berbilang dimensi
Dalam PHP, tatasusunan berbilang dimensi ialah tatasusunan yang mengandungi berbilang tatasusunan bersarang. Sebagai contoh, kita boleh menggunakan tatasusunan berbilang dimensi untuk menyimpan maklumat prestasi pelajar:
$scores = array( "张三" => array("语文" => 85, "数学" => 90, "英语" => 98), "李四" => array("语文" => 91, "数学" => 88, "英语" => 95), "王五" => array("语文" => 92, "数学" => 95, "英语" => 90) );
Dalam contoh di atas, kami mencipta tatasusunan berbilang dimensi yang mengandungi tiga tatasusunan bersarang, setiap tatasusunan bersarang mengandungi maklumat prestasi A pelajar. Ambil perhatian bahawa dalam tatasusunan berbilang dimensi, setiap tatasusunan mempunyai nilai kunci yang sepadan (Zhang San, Li Si, Wang Wu), dan nilai kunci ini boleh menjadi nombor atau jenis rentetan.
2. Kaedah deduplikasi
fungsi array_unique() ialah fungsi terbina dalam PHP untuk deduplikasi nilai pendua daripada tatasusunan dan mengekalkan nilai utama tatasusunan asal. Walau bagaimanapun, untuk tatasusunan berbilang dimensi, fungsi array_unique() hanya boleh mengalih keluar nilai pendua daripada subarray peringkat pertama. Contohnya:
$array = array(1,1,'a','b',array('a','b'),array('a','b')); $result = array_unique($array); print_r($result);
Hasil keluaran ialah:
Array ( [0] => 1 [2] => a [3] => b [4] => Array ( [0] => a [1] => b ) )
Kami mendapati bahawa walaupun tatasusunan bersarang ('a', 'b') diulang dua kali, ia tidak dinyahduplikasi.
2. Fungsi tersuai
Untuk masalah deduplikasi tatasusunan berbilang dimensi, kami boleh menyesuaikan fungsi untuk mencapainya. Berikut ialah contoh mudah:
function multi_array_unique($array){ foreach ($array as $key1 => $value1) { foreach ($array as $key2 => $value2) { if ($key1 != $key2 && $value1 === $value2) { unset($array[$key2]); } } } return $array; }
Fungsi di atas menggunakan gelung foreach berganda untuk merentasi tatasusunan berbilang dimensi Jika dua tatasusunan bukan tatasusunan yang sama dan mempunyai nilai yang sama, elemen tatasusunan berikut akan dipadamkan. Akhirnya, tatasusunan yang diproses dikembalikan.
Kita boleh menguji fungsi ini:
$array = array( array("id"=>1,"name"=>"apple"), array("id"=>2,"name"=>"banana"), array("id"=>3,"name"=>"orange"), array("id"=>4,"name"=>"orange"), array("id"=>5,"name"=>"apple") ); $result = multi_array_unique($array); print_r($result);
Hasil output ialah:
Array ( [0] => Array ( [id] => 1 [name] => apple ) [1] => Array ( [id] => 2 [name] => banana ) [2] => Array ( [id] => 3 [name] => orange ) )
Kita boleh lihat daripada hasil output bahawa nilai pendua dalam multi- tatasusunan dimensi telah dialih keluar, Hanya nilai unik yang dikekalkan.
3. Ringkasan
Tatasusunan berbilang dimensi PHP boleh dinyahduplikasi melalui fungsi tersuai untuk meningkatkan kecekapan dan ketepatan pelaksanaan program. Dalam pembangunan sebenar, adalah perlu untuk memilih kaedah deduplikasi yang sesuai berdasarkan keperluan projek. Di atas adalah beberapa pengalaman dan idea saya, dialu-alukan untuk bertukar dan berbincang!
Atas ialah kandungan terperinci Bolehkah tatasusunan berbilang dimensi php diduplikasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!