Bagaimana untuk mengalih keluar tatasusunan pendua dalam php

PHPz
Lepaskan: 2023-03-29 14:05:38
asal
539 orang telah melayarinya

Dalam PHP, tatasusunan ialah jenis data yang sangat biasa digunakan, dan kadangkala kita perlu menyahganda tatasusunan untuk memenuhi keperluan kita. Jadi, bagaimana untuk mengalih keluar tatasusunan pendua dalam PHP?

1. Fungsi deduplikasi tatasusunan PHP

PHP menyediakan dua fungsi yang boleh digunakan untuk melaksanakan deduplikasi tatasusunan, iaitu array_unique() dan array_diff_key().

  1. fungsi array_unique()

fungsi array_unique() boleh mengalih keluar nilai pendua daripada tatasusunan dan mengembalikan tatasusunan baharu.

Kod sampel:

$arr = array("apple", "banana", "cherry", "cherry", "banana");
$arr = array_unique($arr);
print_r($arr);
Salin selepas log masuk

Hasil keluaran:

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

Ia boleh dilihat bahawa fungsi array_unique() berjaya mengalih keluar elemen pendua dalam tatasusunan asal.

  1. fungsi array_diff_key()

fungsi array_diff_key() boleh membandingkan dua tatasusunan dan mengembalikan nama kunci perbezaan antara dua tatasusunan.

Kod sampel:

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "green", "d" => "yellow");

$result = array_diff_key($array1, $array2);
print_r($result);
Salin selepas log masuk

Hasil output:

Array
(
    [c] => blue
)
Salin selepas log masuk

Dalam contoh, fungsi array_diff_key() menapis bahagian $array1 yang berbeza daripada $array2 , dikembalikan sebagai tatasusunan baharu.

2. Melaksanakan penyahduplikasi tatasusunan secara manual

Selain menggunakan fungsi PHP, kami juga boleh melaksanakan penyahduplikasian tatasusunan secara manual.

  1. Kaedah 1

Gunakan gelung for dan jika pernyataan untuk melintasi tatasusunan, kenal pasti elemen pendua dan alih keluarnya.

Kod sampel:

$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array();

for ($i = 0; $i < count($arr); $i++) {
    if (!in_array($arr[$i], $new_arr)) {
        $new_arr[] = $arr[$i];
    }
}

print_r($new_arr);
Salin selepas log masuk

Hasil keluaran:

Array
(
    [0] => 1
    [1] => 2
    [2] => 5
    [3] => 6
    [4] => 7
    [5] => 8
    [6] => 9
)
Salin selepas log masuk

Fungsi in_array() menentukan sama ada elemen dalam tatasusunan asal telah pun muncul dalam tatasusunan baharu , jika tidak, tambahkannya pada tatasusunan baharu.

  1. Kaedah 2

Gunakan fungsi array_flip() untuk membalik tatasusunan Selepas mengalih keluar pasangan nilai kunci pendua, gunakan fungsi array_flip() untuk membalik tatasusunan .

Kod sampel:

$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array_flip(array_flip($arr));

print_r($new_arr);
Salin selepas log masuk

Hasil keluaran:

Array
(
    [0] => 1
    [1] => 2
    [2] => 5
    [3] => 6
    [4] => 7
    [5] => 8
    [6] => 9
)
Salin selepas log masuk

Kaedah ini tidak perlu menggunakan gelung, hanya gunakan fungsi array_flip() dua kali.

3. Ringkasan

Di atas ialah beberapa kaedah untuk mengalih keluar tatasusunan pendua dalam PHP Anda boleh memilih kaedah yang sepadan mengikut situasi tertentu. Fungsi array_unique() dan array_diff_key() adalah fungsi PHP sendiri dan mempunyai kecekapan yang agak tinggi Walaupun pelaksanaan manual memerlukan sejumlah besar kod, ia boleh dilaraskan dan dioptimumkan secara fleksibel mengikut situasi sebenar.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar tatasusunan pendua dalam php. 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