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

Apr 19, 2023 am 10:09 AM

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!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah amalan terbaik untuk deduplikasi tatasusunan php Apakah amalan terbaik untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:41 PM

Apakah amalan terbaik untuk deduplikasi tatasusunan php

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Mar 03, 2025 pm 04:51 PM

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama?

Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Mar 10, 2025 pm 06:16 PM

Apakah piawaian pengekodan PHP terkini dan amalan terbaik?

Bagaimana saya bekerja dengan sambungan php dan pecl? Bagaimana saya bekerja dengan sambungan php dan pecl? Mar 10, 2025 pm 06:12 PM

Bagaimana saya bekerja dengan sambungan php dan pecl?

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Mar 10, 2025 pm 06:15 PM

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP?

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Mar 03, 2025 pm 04:47 PM

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi?

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:50 PM

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Mar 10, 2025 pm 06:12 PM

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP?

See all articles