Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyahduplikasi tatasusunan dalam php

Bagaimana untuk menyahduplikasi tatasusunan dalam php

PHPz
PHPzasal
2023-04-23 09:18:496271semak imbas

Dalam PHP, tatasusunan ialah jenis data yang sangat penting, yang boleh digunakan untuk menyimpan dan memproses sejumlah besar data. Walau bagaimanapun, dalam proses menggunakan tatasusunan, kita mungkin menghadapi nilai pendua dalam tatasusunan Dalam kes ini, kita perlu menyahgandakan tatasusunan. Berikut akan memperkenalkan beberapa kaedah penyahduplikasi tatasusunan PHP biasa.

1. Gunakan fungsi array_unique() PHP

Fungsi array_unique() ialah fungsi penyahduplikasi PHP sendiri, yang boleh mengalih keluar nilai pendua daripada tatasusunan dengan mudah. Kaedah menggunakan fungsi ini adalah seperti berikut:

$array = array("a","b","c","d","a","b","e");
$new_array = array_unique($array);
print_r($new_array);

Kod di atas akan mengeluarkan:

Array ( [0] => a [1] => b [2] => c [3] => d [6] => e )

Seperti yang anda lihat, nilai pendua "a" dan "b " dalam tatasusunan asal telah Dialih keluar.

Perlu diambil perhatian bahawa apabila menggunakan fungsi array_unique() untuk mengalih keluar pendua, nama kunci dalam tatasusunan akan dikekalkan. Jika anda ingin mengindeks semula tatasusunan, anda boleh menggunakan fungsi array_values(), contohnya:

$array = array("a","b","c","d","a","b","e");
$new_array = array_values(array_unique($array));
print_r($new_array);

Output:

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

Susun atur telah diindeks semula.

2. Gunakan gelung untuk mengalih keluar pendua

Dalam PHP, anda juga boleh menggelungkan tatasusunan untuk mengalih keluar nilai pendua. Kod kaedah ini adalah seperti berikut:

$array = array("a","b","c","d","a","b","e");
$new_array = array();
foreach($array as $key=>$value){
    if(!in_array($value,$new_array)){
        $new_array[] = $value;
    }
}
print_r($new_array);

Dengan menentukan sama ada nilai tertentu wujud dalam tatasusunan, dan menambahkannya pada tatasusunan baharu jika ia tidak wujud, nilai pendua dalam tatasusunan boleh dikeluarkan. Hasil output ialah:

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

3. Gunakan fungsi array_reduce() PHP Fungsi

array_reduce() ialah fungsi pengurangan tatasusunan yang boleh mengurangkan elemen dalam tatasusunan. Anda boleh menggunakan fungsi array_reduce() untuk mengalih keluar nilai pendua. Kod tersebut adalah seperti berikut:

$array = array("a","b","c","d","a","b","e");
$new_array = array_reduce($array, function($carry, $item){
    if(!in_array($item, $carry)){
        $carry[] = $item;
    }
    return $carry;
}, array());
print_r($new_array);

Kod di atas menggunakan ciri fungsi tanpa nama dalam PHP7 Dengan menilai sama ada nilai tertentu wujud dalam tatasusunan, dan menambahkannya pada tatasusunan baharu jika ia tidak wujud , nilai dalam tatasusunan boleh dialih keluar. Hasil output ialah:

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

4. Gunakan fungsi array_count_values() PHP

array_count_values() fungsi boleh mengembalikan bilangan kejadian setiap nilai dalam tatasusunan. Kodnya adalah seperti berikut:

$array = array("a","b","c","d","a","b","e");
$count_array = array_count_values($array);
$new_array = array_keys($count_array);
print_r($new_array);

Kod di atas mengira bilangan kejadian setiap nilai dalam tatasusunan dan memperoleh tatasusunan baharu melalui fungsi array_keys(). Hasil keluaran ialah:

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

Tiada nilai pendua dalam tatasusunan baharu di sini.

Di atas ialah empat kaedah penyahduplikasi tatasusunan PHP biasa. Memilih kaedah yang paling sesuai untuk pemprosesan deduplikasi berdasarkan situasi sebenar boleh meningkatkan kecekapan pemprosesan tatasusunan dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk menyahduplikasi tatasusunan dalam 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