Rumah >pembangunan bahagian belakang >masalah PHP >php mencari elemen tatasusunan yang berbeza

php mencari elemen tatasusunan yang berbeza

王林
王林asal
2023-05-06 14:07:07625semak imbas

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 $... ] )

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

Output kod di atas ialah:

Array
(
    [3] => d
    [4] => e
)

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

Output kod di atas ialah:

Array
(
    [0] => d
    [1] => e
    [2] => f
    [3] => g
)

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

Output kod di atas ialah:

Array
(
    [3] => d
    [4] => e
    [5] => f
    [6] => g
)

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!

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
Artikel sebelumnya:php wujud dalam arrayArtikel seterusnya:php wujud dalam array