Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mari kita bincangkan tentang kaedah biasa untuk mengalih keluar pendua daripada tatasusunan PHP

Mari kita bincangkan tentang kaedah biasa untuk mengalih keluar pendua daripada tatasusunan PHP

PHPz
PHPzasal
2023-04-19 11:39:01573semak imbas

Dalam PHP, penyahduplikasian tatasusunan ialah operasi biasa. Kerana mungkin terdapat unsur pendua dalam tatasusunan, operasi penyahduplikasian membolehkan kami memperoleh dengan jelas semua elemen yang berbeza dalam tatasusunan. Di bawah ini saya akan memperkenalkan beberapa kaedah deduplikasi tatasusunan yang biasa digunakan.

1. Gunakan fungsi array_unique

Fungsi array_unique ialah fungsi deduplikasi satu langkah yang disertakan dengan PHP. Fungsinya adalah untuk mengalih keluar nilai pendua daripada tatasusunan dan mengembalikan tatasusunan baharu.

Kod contoh:

$array = array('apple', 'orange', 'banana', 'apple', 'orange');
$new_array = array_unique($array);
print_r($new_array);

Hasil keluaran:

Array
(
    [0] => apple
    [1] => orange
    [2] => banana
)

2 Gunakan lintasan gelung

Selain fungsi array_unique, kita boleh juga Gunakan kaedah traversal gelung untuk mencapai penyahduplikasian tatasusunan. Kaedah pelaksanaan khusus adalah untuk mencipta tatasusunan kosong dahulu, dan kemudian menggelung elemen dalam tatasusunan asal untuk menentukan sama ada ia telah muncul dalam tatasusunan baharu. Jika tidak, tambahkan elemen itu pada tatasusunan baharu. Akhir sekali, kembalikan tatasusunan baharu ini.

Kod contoh:

$array = array('apple', 'orange', 'banana', 'apple', 'orange');
$new_array = array();
foreach($array as $value){
    if(!in_array($value, $new_array)){
        $new_array[] = $value;
    }
}
print_r($new_array);

Hasil keluaran:

Array
(
    [0] => apple
    [1] => orange
    [2] => banana
)

3 Gunakan fungsi array_flip dan array_keys

Kaedah lain ialah menggunakan array_flip dan. fungsi array_keys. Fungsi array_flip boleh membalikkan kunci dan nilai dalam tatasusunan, manakala fungsi array_keys boleh mengembalikan senarai semua kunci dalam tatasusunan. Oleh itu, kita boleh mula-mula menggunakan fungsi array_flip untuk menggunakan nilai sebagai kunci, dan kemudian gunakan fungsi array_keys untuk mendapatkan kunci ini Hasil akhir ialah tatasusunan yang dinyahduplikasi.

Kod sampel:

$array = array('apple', 'orange', 'banana', 'apple', 'orange');
$new_array = array_keys(array_flip($array));
print_r($new_array);

Hasil keluaran:

Array
(
    [0] => apple
    [1] => orange
    [2] => banana
)

4. Gunakan fungsi array_filter

Kaedah terakhir ialah menggunakan array_filter fungsi. Fungsi array_filter boleh menggunakan fungsi panggil balik yang ditentukan untuk menapis setiap elemen dalam tatasusunan, dan akhirnya mengembalikan tatasusunan yang ditapis. Kaedah pelaksanaan khusus adalah dengan terlebih dahulu mentakrifkan fungsi tanpa nama sebagai fungsi panggil balik, dan kemudian lulus fungsi ini sebagai parameter kepada fungsi array_filter apabila menapis.

Kod sampel:

$array = array('apple', 'orange', 'banana', 'apple', 'orange');
$new_array = array_filter($array, function($value, $key){
    static $unique = array();
    if(!in_array($value, $unique)){
        $unique[] = $value;
        return true;
    }
    return false;
}, ARRAY_FILTER_USE_BOTH);
print_r($new_array);

Hasil keluaran:

Array
(
    [0] => apple
    [1] => orange
    [2] => banana
)

Di atas ialah empat kaedah penyahduplikasi tatasusunan PHP yang biasa digunakan. Bergantung pada situasi tertentu, kita boleh memilih kaedah yang berbeza secara fleksibel untuk mencapai penyahduplikasi tatasusunan untuk mencapai hasil yang lebih baik.

Atas ialah kandungan terperinci Mari kita bincangkan tentang kaedah biasa untuk mengalih keluar pendua daripada tatasusunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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