Fungsi tatasusunan dalam PHP8: Contoh pelbagai operasi array_intersect_assoc()

王林
Lepaskan: 2023-05-18 08:30:02
asal
1456 orang telah melayarinya

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,...)
Salin selepas log masuk

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

Outputnya ialah:

Array ( [a] => red )
Salin selepas log masuk
Salin selepas log masuk

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

Hasil output ialah:

Array ( [b] => 2 )
Array ( [a] => 1 )
Salin selepas log masuk

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

Outputnya ialah:

Array ( [a] => red )
Salin selepas log masuk
Salin selepas log masuk

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

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

Hasil output ialah:

Array ( [a] => red [b] => green )
Salin selepas log masuk
Salin selepas log masuk

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

Hasil keluaran ialah:

Array ( [a] => red [b] => green )
Salin selepas log masuk
Salin selepas log masuk

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

Hasil keluaran ialah:

Array ( [0] => red [2] => blue )
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!