Rumah > pembangunan bahagian belakang > masalah PHP > Bolehkah tatasusunan berbilang dimensi php diduplikasi?

Bolehkah tatasusunan berbilang dimensi php diduplikasi?

WBOY
Lepaskan: 2023-05-19 12:03:37
asal
611 orang telah melayarinya

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

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

  1. fungsi array_unique()

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

Hasil keluaran ialah:

Array
(
    [0] => 1
    [2] => a
    [3] => b
    [4] => Array
        (
            [0] => a
            [1] => b
        )

)
Salin selepas log masuk

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

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

Hasil output ialah:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => apple
        )

    [1] => Array
        (
            [id] => 2
            [name] => banana
        )

    [2] => Array
        (
            [id] => 3
            [name] => orange
        )

)
Salin selepas log masuk

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!

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