Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk membandingkan dua tatasusunan untuk mencari nilai yang berbeza dalam PHP

Bagaimana untuk membandingkan dua tatasusunan untuk mencari nilai yang berbeza dalam PHP

PHPz
PHPzasal
2023-04-19 10:09:371368semak imbas

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

  1. array_diff()

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'];
    array_merge()
Selain itu, kita boleh menggunakan fungsi

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

3. Pengoptimuman perbandingan dua tatasusunan

Apabila panjang tatasusunan yang hendak dibandingkan adalah sangat besar, kaedah di atas mungkin menjejaskan kecekapan atur cara. Untuk mengoptimumkan kelajuan perbandingan, kita boleh menggunakan fungsi

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

4. Output hasil

Akhir sekali, kita boleh mengeluarkan hasil melalui kod berikut:

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,g
Ringkasan:

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!

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