Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk membuang tatasusunan yang sama dalam php

Bagaimana untuk membuang tatasusunan yang sama dalam php

PHPz
PHPzasal
2023-04-19 10:05:23523semak imbas

Dalam PHP, selalunya diperlukan untuk beroperasi pada tatasusunan, dan salah satu operasi biasa ialah mengalih keluar data yang sama. Keadaan ini sangat biasa semasa pemprosesan data, penapisan atau penyahduplikasian. Jadi, dalam operasi tertentu, bagaimana kita menggunakan PHP untuk mengalih keluar tatasusunan yang sama?

1. Gunakan fungsi array_unique() untuk mengalih keluar elemen yang sama

Fungsi terbina dalam PHP array_unique() boleh digunakan untuk mengalih keluar elemen pendua dalam tatasusunan. Fungsi ini mengembalikan tatasusunan baharu yang mengandungi hanya elemen berbeza yang muncul dalam tatasusunan asal. Di bawah, kami menunjukkan cara menggunakan fungsi ini:

<?php
$colors = array("red","green","blue","red","yellow","blue");
$unique_colors = array_unique($colors);
print_r($unique_colors);
?>

Dalam kod ini, kami mentakrifkan tatasusunan $colors, beberapa elemen diulang. Melalui pemprosesan fungsi array_unique(), tatasusunan baru $unique_colors selepas mengalih keluar elemen pendua dikembalikan. Kita dapat melihat bahawa hasil keluaran adalah seperti berikut:

Array
(
[0] => red
[1] => green
[2] => blue
[4] => yellow
)

Seperti yang anda boleh lihat daripada output, elemen pendua dalam tatasusunan $colors telah dialih keluar daripada tatasusunan $unique_colors.

2. Gunakan fungsi tersuai untuk mengalih keluar elemen yang sama

Kadangkala, kita perlu menggunakan fungsi tersuai untuk mengalih keluar elemen pendua dalam tatasusunan. Kaedah ini lebih menyusahkan untuk dilaksanakan, dan anda perlu menulis kod anda sendiri untuk memproses tatasusunan.

<?php
function custom_unique($array){
    $result = array();
    foreach($array as $value){
        if(!in_array($value,$result)){
            $result[] = $value;
        }
    }
    return $result;
}
$colors = array("red","green","blue","red","yellow","blue");
$unique_colors = custom_unique($colors);
print_r($unique_colors);
?>

Dalam kod ini, kami mentakrifkan fungsi tersuai custom_unique() untuk mengalih keluar elemen pendua dalam tatasusunan $colors. Proses pelaksanaan fungsi ini ialah: melintasi tatasusunan awal, gunakan fungsi in_array() untuk menentukan sama ada elemen telah muncul dalam tatasusunan baharu $unique_colors, jika tidak, tambahkannya pada tatasusunan baharu $unique_colors, dan akhirnya kembalikan yang diproses tatasusunan baharu. Menjalankan kod di atas akan mengeluarkan hasil yang serupa dengan kaedah pertama:

Array
(
[0] => red
[1] => green
[2] => blue
[4] => yellow
)

3 Gunakan fungsi array_diff() untuk mengalih keluar elemen yang sama

Fungsi array_diff() boleh digunakan untuk membandingkan. dua Tatasusunan, mengembalikan elemen yang berbeza di antara mereka. Jika matlamat kami adalah untuk mengalih keluar elemen yang sama daripada tatasusunan, kami juga boleh menggunakan ciri ini untuk mencapainya.

<?php
$colors = array("red","green","blue","red","yellow","blue");
$unique_colors = array_diff($colors,array_unique($colors));
print_r($unique_colors);
?>

Dalam kod ini, kami menggunakan fungsi array_diff() dan fungsi array_unique() untuk mengalih keluar elemen yang sama. Mula-mula, kita menggunakan fungsi array_unique() untuk mendapatkan tatasusunan selepas mengalih keluar elemen pendua, dan kemudian gunakan fungsi array_diff() untuk membandingkan tatasusunan awal dan tatasusunan selepas penyahduplikasian, dan mengembalikan elemen yang berbeza antara dua tatasusunan, iaitu apa kita perlukan array.

Melalui tiga kaedah di atas, kita boleh mengalih keluar elemen yang sama dalam tatasusunan dengan lebih mudah. Kaedah mana yang hendak digunakan bergantung pada keperluan sebenar dan tabiat pengaturcaraan kita.

Atas ialah kandungan terperinci Bagaimana untuk membuang tatasusunan yang sama 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