Rumah >pembangunan bahagian belakang >masalah PHP >php mencari elemen tatasusunan yang berbeza
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!