Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk membandingkan dua tatasusunan untuk mencari nilai yang berbeza dalam PHP
Dalam PHP, selalunya perlu melakukan operasi perbandingan pada tatasusunan, terutamanya untuk menganalisis dan membandingkan perbezaan antara dua tatasusunan. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membandingkan dua tatasusunan dan mencari nilai berbeza mereka.
1. Permulaan dua tatasusunan
Andaikan terdapat dua tatasusunan $arr1 dan $arr2 yang perlu dibandingkan. Mula-mula kita mulakan melalui kaedah berikut:
$arr1 = array("a", "b", "c", "d"); $arr2 = array("b", "d", "f", "g");
2 Kaedah perbandingan dua tatasusunan
Fungsi PHP sendiri boleh mencari nilai dalam tatasusunan pertama yang berbeza daripada tatasusunan yang lain. Kita boleh membandingkan dua tatasusunan, iaitu: array_diff()
$diff1 = array_diff($arr1, $arr2); $diff2 = array_diff($arr2, $arr1);di mana
mewakili nilai dalam $arr1 yang berbeza daripada $arr2, dan $diff1
mewakili nilai dalam $arr2 yang berbeza daripada $ arr1 . Hasil daripada mengeluarkan dua tatasusunan di atas adalah seperti berikut: $diff2
$diff1 = ['a', 'c']; $diff2 = ['f', 'g'];
untuk menggabungkan dua tatasusunan, dan kemudian gunakan array_merge()
Fungsi menyahduplikasi dan mengalih keluar pendua, dan nilai berbeza kedua-dua tatasusunan diperoleh. Pelaksanaan khusus adalah seperti berikut: array_unique()
$merge_arr = array_merge($arr1, $arr2); $unique_arr = array_unique($merge_arr); $diff_arr = array_diff($unique_arr, array_intersect($arr1, $arr2));Dalam kod di atas,
mewakili persilangan $arr1 dan $arr2, dan fungsi array_intersect($arr1, $arr2)
digunakan untuk mencari elemen yang muncul sekali sahaja dalam $unique_arr. Akhirnya array_diff()
ialah nilai berbeza antara dua tatasusunan. $diff_arr
untuk membalikkan salah satu tatasusunan supaya pasangan nilai kunci diterbalikkan, dan kemudian bandingkan. Kaedah pelaksanaan khusus adalah seperti berikut: array_flip()
$flip_arr2 = array_flip($arr2); $diff1 = array_diff_assoc($arr1, $flip_arr2); $diff2 = array_diff_assoc($arr2, array_flip($arr1));Antaranya, fungsi
digunakan untuk membandingkan sama ada kunci dan nilai dalam dua tatasusunan adalah sama. array_diff_assoc()
echo 'arr1 与 arr2 的差异为: '.implode(',', $diff1).'<br>'; echo 'arr2 与 arr1 的差异为: '.implode(',', $diff2).'<br>'; echo '两个数组不同值为: '.implode(',',$diff_arr).'<br>';Hasil keluaran kod di atas adalah seperti berikut:
arr1 与 arr2 的差异为: a,c arr2 与 arr1 的差异为: f,g 两个数组不同值为: a,c,f,gRingkasan: Artikel ini memperkenalkan kaedah membandingkan dua tatasusunan dalam PHP dan mengoptimumkannya untuk situasi di mana panjang tatasusunan adalah sangat besar. Saya harap ia akan membantu pemula PHP dan pembaca yang tidak biasa dengan operasi perbandingan tatasusunan.
Atas ialah kandungan terperinci Bagaimana untuk membandingkan dua tatasusunan untuk mencari nilai yang berbeza dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!