Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengalih keluar tatasusunan pendua dalam php

Bagaimana untuk mengalih keluar tatasusunan pendua dalam php

PHPz
PHPzasal
2023-03-29 11:31:18512semak imbas

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);

Hasil keluaran:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

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);

Hasil output:

Array
(
    [c] => blue
)

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);

Hasil keluaran:

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

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);

Hasil keluaran:

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

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!

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