Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk mengalih keluar nilai pendua daripada tatasusunan tiga dimensi dalam PHP (tiga kaedah)

Bagaimana untuk mengalih keluar nilai pendua daripada tatasusunan tiga dimensi dalam PHP (tiga kaedah)

PHPz
Lepaskan: 2023-04-12 11:33:30
asal
888 orang telah melayarinya

PHP ialah bahasa pengaturcaraan yang sangat popular yang digunakan secara meluas untuk pembangunan web. Dalam proses menulis program PHP, anda sering menghadapi keperluan untuk memproses tatasusunan berbilang dimensi (juga dipanggil tatasusunan berbilang). Kadangkala, akan terdapat unsur pendua dalam tatasusunan ini, yang akan menyebabkan beberapa masalah untuk program kami. Artikel ini akan memperkenalkan cara mengalih keluar nilai pendua daripada tatasusunan tiga dimensi dalam PHP.

  1. Gunakan kaedah lintasan gelung

Cara paling biasa untuk mengalih keluar nilai pendua daripada tatasusunan ialah menggunakan gelung untuk melintasi setiap elemen dalam tatasusunan. Langkah-langkah khusus adalah seperti berikut:

  • Lintas setiap elemen dalam tatasusunan
  • Semak sama ada elemen itu sudah wujud dalam tatasusunan baharu
  • Jika ia tidak wujud, kemudian Tambahkan elemen pada tatasusunan baharu
  • Jika ia wujud, langkau elemen

Berikut ialah kod sampel yang menggunakan kaedah lintasan gelung untuk mengalih keluar nilai pendua dalam tiga tatasusunan -dimensi:

function array_unique_multidim($array){
    $unique_array = array();
    foreach($array as $key => $value){
        if(!in_array($value, $unique_array)){ 
            $unique_array[$key] = $value;
        }
    }
    return $unique_array;
}
Salin selepas log masuk

Kod ini akan mengembalikan tatasusunan baharu tanpa unsur pendua. Kaedah ini boleh mengendalikan berbilang tatasusunan secara rekursif. Walau bagaimanapun, kaedah ini lebih perlahan dan sesuai untuk memproses tatasusunan kecil.

  1. Gunakan fungsi array_unique()

Fungsi array_unique() terbina dalam PHP boleh mengalih keluar nilai pendua daripada tatasusunan, tetapi fungsi ini hanya boleh digunakan untuk tatasusunan satu dimensi. Untuk tatasusunan berbilang dimensi, kita perlu menukarnya kepada tatasusunan satu dimensi dahulu, dan kemudian gunakan fungsi ini untuk mengalih keluar pendua.

Berikut ialah kod sampel yang menggunakan fungsi array_unique() untuk mengalih keluar nilai pendua daripada tatasusunan:

function array_unique_multidim($array){
    $flatten_array = array_reduce($array, 'array_merge', array());
    $unique_array = array_unique($flatten_array);
    foreach($unique_array as $key => $value){
        if(is_array($value)){ 
            $unique_array[$key] = array_unique_multidim($value);
        }
    }
    return $unique_array;
}
Salin selepas log masuk

Kod ini akan mengembalikan tatasusunan baharu tanpa unsur pendua. Kaedah ini lebih pantas dan ringkas, serta sesuai untuk memproses tatasusunan yang besar.

  1. Tentukan indeks unik

Jika kita mempunyai kunci indeks yang mewakili nilai unik dalam tatasusunan, kita boleh menggunakan kunci itu untuk mengalih keluar nilai pendua. Langkah-langkah khusus adalah seperti berikut:

  • Lintas setiap elemen dalam tatasusunan
  • Semak sama ada kunci unik elemen itu sudah wujud dalam tatasusunan baharu
  • Jika ia tidak wujud , kemudian tambahkan elemen pada tatasusunan baharu
  • Jika ia wujud, langkau elemen

Berikut ialah kod sampel untuk mengalih keluar nilai pendua daripada tatasusunan menggunakan kunci indeks unik:

function array_unique_multidim($array, $key){
    $unique_array = array();
    foreach($array as $value){
        if(!array_key_exists($value[$key], $unique_array)){
            $unique_array[$value[$key]] = $value;
        }
    }
    return $unique_array;
}
Salin selepas log masuk

Kod ini akan mengembalikan tatasusunan baharu tanpa unsur pendua. Kaedah ini lebih pantas dan sesuai untuk memproses tatasusunan yang perlu mengekalkan kunci tertentu.

Ringkasnya, ketiga-tiga kaedah ini masing-masing mempunyai kelebihan dan kekurangan yang tersendiri dan boleh dipilih mengikut keperluan yang berbeza. Untuk tatasusunan yang lebih kecil, kaedah traversal gelung adalah pilihan yang lebih baik, manakala untuk tatasusunan besar, anda boleh menggunakan fungsi array_unique() atau kaedah menentukan kunci indeks yang unik.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar nilai pendua daripada tatasusunan tiga dimensi dalam PHP (tiga kaedah). 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