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

tatasusunan php tidak termasuk pendua

WBOY
Lepaskan: 2023-05-06 13:23:07
asal
522 orang telah melayarinya

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);
Salin selepas log masuk

Hasil keluaran:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  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);
Salin selepas log masuk

Hasil keluaran:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  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);
Salin selepas log masuk

Hasil output:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
    [4] => banana
)
Salin selepas log masuk

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);
Salin selepas log masuk

Hasil keluaran:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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);
Salin selepas log masuk

Hasil keluaran:

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
)
Salin selepas log masuk

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);
Salin selepas log masuk

Hasil keluaran:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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!

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