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
Lepaskan: 2023-04-19 10:19:28
asal
1367 orang telah melayarinya

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");
Salin selepas log masuk

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);
Salin selepas log masuk
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'];
Salin selepas log masuk
    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));
Salin selepas log masuk
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));
Salin selepas log masuk
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>';
Salin selepas log masuk
Hasil keluaran kod di atas adalah seperti berikut:

arr1 与 arr2 的差异为: a,c
arr2 与 arr1 的差异为: f,g
两个数组不同值为: a,c,f,g
Salin selepas log masuk
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!

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