Dalam PHP, kita selalunya perlu memproses operasi tatasusunan, dan kadangkala terdapat unsur pendua dalam tatasusunan yang perlu dihapuskan. Artikel ini akan memperkenalkan beberapa kaedah yang biasa digunakan untuk menghapuskan pendua dalam tatasusunan PHP.
fungsi array_unique() boleh mengembalikan tatasusunan baharu tanpa nilai pendua.
Kod contoh:
$arr = array("apple", "banana", "cherry", "apple", "banana"); $new_arr = array_unique($arr); print_r($new_arr);
Hasil keluaran:
Array ( [0] => apple [1] => banana [2] => cherry )
Cara lain untuk mengecualikan pendua Apa yang anda lakukan ialah menggunakan gelung untuk melelaran melalui tatasusunan dan gunakan fungsi in_array() untuk menyemak sama ada setiap nilai sudah wujud dalam tatasusunan baharu. Jika ia tidak wujud, tambahkannya pada tatasusunan baharu.
Kod sampel:
$arr = array("apple", "banana", "cherry", "apple", "banana"); $new_arr = array(); foreach ($arr as $value) { if (!in_array($value, $new_arr)) { $new_arr[] = $value; } } print_r($new_arr);
Hasil keluaran:
Array ( [0] => apple [1] => banana [2] => cherry )
array_filter() fungsi boleh digunakan untuk memadam Semua nilai nol dalam tatasusunan. Jika anda menggunakan fungsi panggil balik, anda boleh menapis nilai tatasusunan berdasarkan syarat yang ditentukan.
Kod sampel:
$arr = array("apple", "banana", "cherry", "", "banana"); $new_arr = array_filter($arr); print_r($new_arr);
Hasil output:
Array ( [0] => apple [1] => banana [2] => cherry [4] => banana )
Jika anda ingin mengecualikan elemen pendua, anda boleh menggunakan fungsi panggil balik untuk menapis.
Kod sampel:
$arr = array("apple", "banana", "cherry", "apple", "banana"); $new_arr = array_filter($arr, function ($value, $key) use ($arr) { return array_search($value, $arr) === $key; }, ARRAY_FILTER_USE_BOTH); print_r($new_arr);
Hasil keluaran:
Array ( [0] => apple [1] => banana [2] => cherry )
Fungsi panggil balik di sini menyemak sama ada indeks nilai adalah sama dengan indeks dalam tatasusunan, jika ya, nilai adalah unik.
Cara lain untuk mengecualikan pendua ialah menggunakan fungsi array_keys() untuk mendapatkan kunci unik dalam tatasusunan dan gunakan fungsi array_values () mendapat nilai yang sepadan.
Kod sampel:
$arr = array("apple", "banana", "cherry", "apple", "banana"); $new_arr = array_values(array_unique(array_keys($arr, true))); print_r($new_arr);
Hasil keluaran:
Array ( [0] => 0 [1] => 1 [2] => 2 )
Apa yang dikembalikan di sini ialah tatasusunan kunci, yang boleh ditukar menjadi tatasusunan nilai menggunakan peta_tatasusunan () fungsi.
Kod contoh:
$arr = array("apple", "banana", "cherry", "apple", "banana"); $new_arr = array_map(function ($key) use ($arr) { return $arr[$key]; }, array_values(array_unique(array_keys($arr, true)))); print_r($new_arr);
Hasil keluaran:
Array ( [0] => apple [1] => banana [2] => cherry )
Di atas adalah beberapa cara untuk menghapuskan pendua dalam tatasusunan dalam PHP Setiap kaedah mempunyai kelebihan dan kekurangan yang berbeza kaedah yang sesuai mengikut senario aplikasi tertentu.
Atas ialah kandungan terperinci tatasusunan php tidak termasuk pendua. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!