php mencari elemen tatasusunan yang berbeza

王林
Lepaskan: 2023-05-06 14:07:07
asal
578 orang telah melayarinya

Dalam PHP, kadangkala anda perlu mencari elemen berbeza antara dua tatasusunan. Mungkin terdapat pelbagai penyelesaian untuk masalah ini, dan berikut adalah beberapa penyelesaian biasa.

Kaedah 1: Gunakan fungsi array_diff

Terdapat array_diff fungsi terbina dalam dalam PHP yang boleh digunakan untuk membandingkan elemen berbeza antara dua tatasusunan.

Sintaks fungsi ini adalah seperti berikut:

array array_diff ( array $array1 , array $array2 [, array $... ] )
Salin selepas log masuk

Di mana, $array1 ialah array pertama, $array2 ialah array kedua, [, array $...] ialah pilihan pertama tatasusunan Tiga, keempat,... tatasusunan.

Fungsi ini mengembalikan tatasusunan yang mengandungi semua elemen yang muncul dalam tatasusunan pertama tetapi tidak dalam tatasusunan berikutnya.

Berikut ialah contoh menggunakan fungsi array_diff untuk mencari elemen berbeza:

$array1 = array("a", "b", "c", "d", "e");
$array2 = array("a", "b", "c", "f", "g");
$result = array_diff($array1, $array2);
print_r($result);
Salin selepas log masuk

Output kod di atas ialah:

Array
(
    [3] => d
    [4] => e
)
Salin selepas log masuk

Kaedah 2: Gunakan gelung foreach untuk traverse

Kaedah lain ialah menggunakan gelung foreach untuk melintasi dua tatasusunan dan membandingkan setiap elemen daripadanya. Ini memerlukan penggunaan pembilang untuk menandakan bilangan elemen yang berbeza dan menyimpannya dalam tatasusunan baharu.

Berikut ialah contoh menggunakan gelung foreach untuk melintasi bagi mencari elemen berbeza:

$array1 = array("a", "b", "c", "d", "e");
$array2 = array("a", "b", "c", "f", "g");
$diff = array();
$count = 0;

foreach($array1 as $val){
    if(!in_array($val, $array2)){
        $diff[$count] = $val;
        $count++;
    }
}

foreach($array2 as $val){
    if(!in_array($val, $array1){
        $diff[$count] = $val;
        $count++;
    }
}

print_r($diff);
Salin selepas log masuk

Output kod di atas ialah:

Array
(
    [0] => d
    [1] => e
    [2] => f
    [3] => g
)
Salin selepas log masuk

Kaedah 3: Gunakan fungsi array_merge dan fungsi array_unique

Kaedah ini adalah untuk menggabungkan dua tatasusunan menjadi satu tatasusunan, dan kemudian gunakan fungsi array_unique untuk mencari elemen yang berbeza.

Berikut ialah contoh menggunakan fungsi array_merge dan fungsi array_unique untuk mencari elemen berbeza:

$array1 = array("a", "b", "c", "d", "e");
$array2 = array("a", "b", "c", "f", "g");
$union = array_merge($array1, $array2);
$diff = array_unique($union);

print_r($diff);
Salin selepas log masuk

Output kod di atas ialah:

Array
(
    [3] => d
    [4] => e
    [5] => f
    [6] => g
)
Salin selepas log masuk

Ringkasan

Di atas adalah Tiga cara untuk mencari elemen yang berbeza. Antaranya, fungsi array_diff adalah kaedah yang paling mudah dan paling mudah digunakan Anda hanya perlu menghantar dua tatasusunan kepadanya untuk mendapatkan elemen yang berbeza. Walaupun menggunakan traversal gelung foreach memerlukan menulis lebih banyak kod, kelajuan pelaksanaan kod akan lebih pantas daripada fungsi array_diff. Akhir sekali, walaupun kod menggunakan fungsi array_merge dan fungsi array_unique adalah mudah, ia memerlukan mencipta tatasusunan baharu dalam memori untuk menyimpan data, yang mungkin menyebabkan beberapa masalah prestasi. Oleh itu, anda perlu mempertimbangkan pilihan anda apabila menggunakannya.

Atas ialah kandungan terperinci php mencari elemen tatasusunan yang berbeza. 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