Rumah > Artikel > pembangunan bahagian belakang > php item yang berbeza daripada 2 tatasusunan
PHP ialah bahasa pengaturcaraan yang sangat popular, dan kami sering menghadapi pelbagai masalah yang memerlukan tatasusunan sebagai jenis data. Salah satu soalan biasa ialah bagaimana untuk mencari item yang berbeza dalam dua tatasusunan. Artikel ini akan memperkenalkan tiga kaedah biasa untuk menyelesaikan masalah ini.
Kaedah 1: Gunakan fungsi array_diff()
PHP menyediakan fungsi yang sangat mudah untuk membandingkan item yang berbeza bagi dua tatasusunan Fungsi ini ialah array_diff().
Sebagai contoh, kami mempunyai dua tatasusunan, $arr1 dan $arr2:
$arr1 = array('apple', 'banana', 'orange', 'pear'); $arr2 = array('apple', 'banana', 'kiwi', 'grape');
Kami ingin mengetahui item yang berbeza dalam dua tatasusunan, kemudian kami boleh menggunakan fungsi array_diff() As berikut:
$diff = array_diff($arr1, $arr2); print_r($diff);
Hasil output ialah:
Array ( [2] => orange [3] => pear )
Kaedah 2: Gunakan fungsi array_diff_key()
Jika kita ingin membandingkan kekunci tatasusunan dan bukannya nilai , kita boleh menggunakan fungsi array_diff_key() untuk menyelesaikan masalah.
Sebagai contoh, kita mempunyai dua tatasusunan, $arr1 dan $arr2, dengan kekunci $arr1 ialah 'a', 'b', 'c' dan kekunci $arr2 ialah 'a', 'd', 'e', kami ingin mengetahui kunci yang berbeza dalam dua tatasusunan, kemudian kami boleh menggunakan fungsi array_diff_key() seperti berikut:
$arr1 = array('a'=>1, 'b'=>2, 'c'=>3); $arr2 = array('a'=>1, 'd'=>4, 'e'=>5); $diff = array_diff_key($arr1, $arr2); print_r($diff);
Hasil output ialah:
Array ( [b] => 2 [c] => 3 )
kaedah Tiga: Gunakan gelung foreach
Selain menggunakan fungsi pratakrif yang disediakan oleh PHP, kami juga boleh menggunakan gelung foreach untuk membandingkan item berbeza dua tatasusunan.
Sebagai contoh, kami mempunyai dua tatasusunan, $arr1 dan $arr2:
$arr1 = array('apple', 'banana', 'orange', 'pear'); $arr2 = array('apple', 'banana', 'kiwi', 'grape');
Kami ingin mengetahui item yang berbeza dalam dua tatasusunan, kemudian kami boleh menggunakan gelung foreach untuk mencapainya Seperti berikut:
$diff = array(); foreach($arr1 as $val) { if (!in_array($val, $arr2)) { $diff[] = $val; } } foreach($arr2 as $val) { if (!in_array($val, $arr1)) { $diff[] = $val; } } print_r($diff);
Hasil keluaran ialah:
Array ( [2] => orange [3] => pear [4] => kiwi [5] => grape )
Ringkasan
Di atas ialah tiga kaedah yang biasa digunakan untuk mencari item berbeza dalam dua tatasusunan ciri-ciri dan senario yang berkenaan perlu dipilih dan digunakan mengikut situasi sebenar. Tidak kira kaedah mana yang digunakan, semasa melakukan perbandingan tatasusunan, anda harus memberi perhatian kepada faktor seperti jenis dan kuantiti kunci dan nilai tatasusunan untuk memastikan ketepatan hasil perbandingan.
Atas ialah kandungan terperinci php item yang berbeza daripada 2 tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!