Rumah >pembangunan bahagian belakang >masalah PHP >tatasusunan php tidak termasuk pendua

tatasusunan php tidak termasuk pendua

WBOY
WBOYasal
2023-05-06 13:23:07523semak imbas

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.

  1. Gunakan fungsi array_unique()

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
)
  1. Gunakan lintasan gelung untuk mengecualikan pendua

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
)
  1. Gunakan fungsi array_filter()

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.

  1. Gunakan fungsi array_keys() dan array_values()

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!

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
Artikel sebelumnya:php textarea kepada tatasusunanArtikel seterusnya:php textarea kepada tatasusunan