Dalam pembangunan PHP, kita selalunya perlu beroperasi pada tatasusunan ialah jenis data yang sangat biasa digunakan untuk menyimpan satu set data. Kadang-kadang kita perlu membandingkan dua tatasusunan, mencari perbezaan antara mereka, dan mengalih keluar elemen yang berbeza. Jadi, dalam PHP, apakah kaedah yang boleh kita gunakan untuk mendapatkan set perbezaan? Adakah mungkin untuk menggunakan kaedah penyingkiran secara langsung untuk mendapatkan set perbezaan? Mari kita bincangkan bersama.
Pertama sekali, kita perlu memahami definisi set perbezaan. Set perbezaan, juga dipanggil set pelengkap, ialah set elemen yang muncul dalam satu set tetapi tidak dalam set lain. Sebagai contoh, tetapkan A={1,2,3,4} dan tetapkan B={3,4,5,6}, maka set perbezaan antara A dan B ialah {1,2} dan {5,6}.
Dalam PHP, kita boleh menggunakan fungsi array_diff untuk mengira perbezaan antara dua tatasusunan. Sebagai contoh, kita mempunyai dua tatasusunan $A dan $B, kita boleh menggunakan fungsi array_diff seperti berikut:
$A = array(1, 2, 3, 4); $B = array(3, 4, 5, 6); $diff = array_diff($A, $B); print_r($diff);
Selepas melaksanakan kod di atas, hasil output ialah:
Array ( [0] => 1 [1] => 2 )
Ini Ia bermakna hanya terdapat dua elemen 1 dan 2 dalam $A, tetapi ia tidak wujud dalam $B, jadi ia dikekalkan dalam set perbezaan. Selain itu, fungsi array_diff boleh membandingkan perbezaan antara berbilang tatasusunan, contohnya:
$A = array(1, 2, 3, 4); $B = array(3, 4, 5, 6); $C = array(2, 5, 7); $diff = array_diff($A, $B, $C); print_r($diff);
Selepas melaksanakan kod di atas, hasil output ialah:
Array ( [0] => 1 )
Ini menunjukkan bahawa dalam $A Hanya unsur 1 wujud, yang tidak wujud dalam $B atau $C, jadi ia dikekalkan dalam set perbezaan.
Seterusnya, mari jawab soalan pada permulaan: Bolehkah kita terus menggunakan kaedah penyingkiran untuk mendapatkan set perbezaan? Jawapannya tidak. Kerana dalam PHP, memadamkan elemen tatasusunan akan menetapkan semula nilai utama, mengakibatkan ketaksinambungan subskrip tatasusunan. Apabila mengira set perbezaan, anda perlu membandingkan subskrip antara dua tatasusunan. Oleh itu, jika kaedah pemadaman digunakan untuk mengira set perbezaan, subskrip mungkin tidak sepadan, mengakibatkan ralat pengiraan.
Secara amnya, mengambil set perbezaan ialah jenis operasi tatasusunan yang sangat biasa dan penting, yang boleh diselesaikan melalui fungsi array_diff terbina dalam PHP. Pada masa yang sama, kita perlu berhati-hati dalam mengendalikan operasi seperti memadam elemen tatasusunan yang akan mengagihkan semula subskrip, supaya tidak menjejaskan operasi tatasusunan seterusnya.
Atas ialah kandungan terperinci Adakah mungkin untuk mengalih keluar perbezaan yang ditetapkan dalam php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!