Sebagai bahasa yang digunakan secara meluas dalam pembangunan web dan pengaturcaraan skrip sebelah pelayan, sokongan fungsi tatasusunan bahasa PHP adalah salah satu komponen penting prestasi cemerlangnya. Dalam PHP8, fungsi tatasusunan baharu array_intersect_assoc() telah diperkenalkan, yang mempunyai prestasi yang lebih cekap dan penggunaan yang lebih mudah apabila mengendalikan tatasusunan bersekutu. Artikel ini akan memperkenalkan penggunaan fungsi array_intersect_assoc() dan menyediakan pelbagai contoh untuk menggambarkan pelbagai kaedah operasi dan senario aplikasi praktikalnya.
1. Penggunaan asas array_intersect_assoc()
Fungsi array_intersect_assoc() digunakan untuk membandingkan dua atau lebih tatasusunan bersekutu dan mengembalikan tatasusunan bersekutu baharu yang mengandungi nilai yang sama seperti semua input tatasusunan. Terdapat elemen dengan kunci dan nilai yang sama. Sintaksnya adalah seperti berikut:
array_intersect_assoc(array1,array2,array3,...)
di mana setiap parameter input ialah tatasusunan bersekutu, yang akan dibandingkan untuk mencari kunci dan nilai yang sama. Nilai pulangan ialah tatasusunan bersekutu baharu yang mengandungi elemen dengan kunci dan nilai yang sama dengan semua tatasusunan input. Berikut ialah contoh mudah:
$array1 = array("a"=>"red","b"=>"green","c"=>"blue"); $array2 = array("a"=>"red","b"=>"blue"); $result = array_intersect_assoc($array1,$array2); print_r($result);
Outputnya ialah:
Array ( [a] => red )
Ini kerana hanya elemen dengan kunci "a" wujud dalam kedua-dua tatasusunan input dan mempunyai nilai yang sama.
2. Perbezaan antara array_intersect_assoc() dan array_intersect()
Perbezaan daripada fungsi array_intersect()
ialah fungsi array_intersect_assoc()
bukan sahaja membandingkan nilai elemen, tetapi juga membandingkan kunci elemen. Oleh itu, ia mengesan dan mengendalikan perhubungan pasangan nilai kunci dengan lebih tepat. Mari lihat contoh untuk menggambarkan perbezaan ini:
$array1 = array("a"=>1,"b"=>2,"c"=>3); $array2 = array(2=>"b",3=>"a",4=>"c"); $result1 = array_intersect($array1,$array2); $result2 = array_intersect_assoc($array1,$array2); print_r($result1); print_r($result2);
Hasil output ialah:
Array ( [b] => 2 ) Array ( [a] => 1 )
Seperti yang anda lihat, fungsi array_intersect()
hanya mengesan nilai elemen dan mencari yang sama nilai "2", Fungsi array_intersect_assoc()
bukan sahaja mencari elemen "2" dengan nilai yang sama, tetapi juga mencari elemen "a" dengan kunci dan nilai yang sama. Ini adalah salah satu perbezaan antara kedua-dua fungsi.
3. Operasi perbandingan berbilang tatasusunan
array_intersect_assoc()
Fungsi ini bukan sahaja boleh membandingkan dua tatasusunan, tetapi juga membandingkan berbilang tatasusunan. Contoh berikut akan menunjukkan cara membandingkan tiga tatasusunan:
$array1 = array("a"=>"red","b"=>"green","c"=>"blue"); $array2 = array("a"=>"red","b"=>"blue"); $array3 = array("a"=>"red","b"=>"green"); $result = array_intersect_assoc($array1,$array2,$array3); print_r($result);
Outputnya ialah:
Array ( [a] => red )
Ini kerana hanya elemen dengan kunci "a" wujud dalam ketiga-tiga tatasusunan input dan mempunyai nilai sama.
4. Elemen tiada
Jika kunci atau nilai dalam tatasusunan input yang berbeza tidak sama, ia tidak akan disertakan dalam hasil. Jika kunci tiada daripada salah satu tatasusunan input, kunci itu tidak akan disertakan dalam hasilnya. Contohnya:
$array1 = array("a"=>"red","b"=>"green","c"=>"blue"); $array2 = array("a"=>"red","d"=>"blue"); $result = array_intersect_assoc($array1,$array2); print_r($result);
Hasil keluaran ialah tatasusunan kosong.
5. Kekalkan nama kunci atau susunan kunci
Secara lalai, fungsi array_intersect_assoc()
akan mengekalkan nama kunci dan mengekalkan susunan relatifnya dalam tatasusunan hasil. Contohnya:
$array1 = array("a"=>"red","b"=>"green","c"=>"blue"); $array2 = array("a"=>"red","b"=>"blue"); $result = array_intersect_assoc($array1,$array2); print_r($result);
Hasil output ialah:
Array ( [a] => red [b] => green )
Jika anda ingin mengisih keputusan mengikut abjad nama kunci, anda boleh menggunakan fungsi ksort()
, seperti berikut:
$array1 = array("a"=>"red","b"=>"green","c"=>"blue"); $array2 = array("a"=>"red","b"=>"blue"); $result = array_intersect_assoc($array1,$array2); ksort($result); print_r($result);
Hasil keluaran ialah:
Array ( [a] => red [b] => green )
Jika anda tidak mengekalkan nama kunci, tetapi hanya mengekalkan nilai elemen, anda boleh menggunakan fungsi array_intersect()
, seperti ditunjukkan di bawah:
$array1 = array("red","green","blue"); $array2 = array("red","blue"); $result = array_intersect($array1,$array2); print_r($result);
Hasil keluaran ialah:
Array ( [0] => red [2] => blue )
6. Ringkasan Fungsi
array_intersect_assoc()
ialah salah satu fungsi tatasusunan baharu yang diperkenalkan dalam PHP8 Ia lebih tepat, cekap dan mudah dalam perbandingan dan operasi tatasusunan bersekutu. Artikel ini menyediakan pelbagai contoh dan memperkenalkan cara menggunakannya untuk melaksanakan pelbagai operasi dan operasi, termasuk penggunaan asas, perbezaan daripada fungsi array_intersect()
, operasi perbandingan berbilang tatasusunan, elemen yang hilang, mengekalkan nama kunci atau menyusun kekunci dsb. Bagi pembangun PHP, mengetahui dan menguasai operasi ini boleh menjadikannya lebih mudah dan lebih cekap untuk mengendalikan pelbagai keperluan operasi tatasusunan bersekutu.
Atas ialah kandungan terperinci Fungsi tatasusunan dalam PHP8: Contoh pelbagai operasi array_intersect_assoc(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!