Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan fungsi panggil balik untuk membandingkan nama kunci untuk mengira persilangan tatasusunan dalam PHP
Editor PHP Youzi akan memperkenalkan anda secara terperinci cara menggunakan fungsi panggil balik untuk membandingkan nama kunci untuk mengira persilangan tatasusunan. Dalam PHP, kita boleh menggunakan fungsi array_uintersect_assoc() digabungkan dengan fungsi panggil balik tersuai untuk membandingkan tatasusunan berdasarkan nama kunci dan mengembalikan hasil persilangan. Melalui contoh kod ringkas dan penjelasan langkah demi langkah, anda akan menguasai kemahiran praktikal ini dengan mudah, menjadikan pembangunan PHP anda lebih cekap dan fleksibel.
PHP menggunakan fungsi panggil balik untuk membandingkan nama kunci untuk mengira persimpangan tatasusunan
:
Untuk mengira persilangan dua tatasusunan, iaitu elemen yang berkongsi nama kunci yang sama, anda boleh menggunakan fungsi phparray_intersect_key()
. Fungsi ini berulang melalui tatasusunan pertama dan menyemak sama ada elemen dengan kunci yang sama wujud dalam tatasusunan kedua menggunakan fungsi panggil balik yang disediakan.
Berikut ialah sintaks fungsi:
array_intersect_key(array $array1, array $array2, callable $key_compare_func)
Antaranya:
$array1
: tatasusunan pertama$array2
: Tatasusunan kedua$key_compare_func
: Fungsi panggil balik untuk membandingkan nama kunciFungsi panggil balik mesti menerima dua parameter, mewakili dua nama kunci untuk dibandingkan dan mengembalikan nilai Boolean yang menunjukkan sama ada dua nama kunci adalah sama.
Contoh berikut menunjukkan cara mengira persilangan dua tatasusunan menggunakan fungsi array_intersect_key()
, โดยใช้ fungsi panggil balikion เปรียบเทียออออบอน
<?php $array1 = ["apple" => "green", "banana" => "yellow", "orange" => "orange"]; $array2 = ["apple" => "red", "banana" => "green", "pear" => "green"]; // 定义比较键名的回调函数 $key_compare_func = function($key1, $key2) { return $key1 === $key2; }; // 计算数组交集 $intersection = array_intersect_key($array1, $array2, $key_compare_func); print_r($intersection); ?>
Keluaran:
Array ( [apple] => green [banana] => green )
Dalam contoh ini, fungsi panggil balik $key_compare_func
比较两个键名是否相等。只有 apple
和 banana
membandingkan dua nama utama untuk kesaksamaan. Hanya kekunci apple
dan banana
wujud dalam kedua-dua tatasusunan, jadi ia membentuk persimpangan.
Gunakan fungsi tanpa nama:
Anda juga boleh menggunakan fungsi tanpa nama untuk menentukan fungsi panggil balik untuk menjadikannya lebih ringkas. Berikut ialah contoh yang sama menggunakan fungsi tanpa nama:
$intersection = array_intersect_key($array1, $array2, function($key1, $key2) { return $key1 === $key2; });
Menggunakan fungsi anak panah (PHP 7.4 dan ke atas):
Dalam PHP 7.4 dan ke atas, anda boleh menggunakan fungsi anak panah untuk memudahkan lagi kod anda:
$intersection = array_intersect_key($array1, $array2, fn($key1, $key2) => $key1 === $key2);
Perbandingan nama kunci tersuai:
Fungsi panggil balik membenarkan logik perbandingan nama kunci tersuai. Sebagai contoh, anda boleh menggunakan fungsi panggil balik berikut untuk membandingkan nama kunci secara tidak sensitif huruf:
$key_compare_func = function($key1, $key2) { return strtolower($key1) === strtolower($key2); };
Dengan cara ini, walaupun nama kunci tatasusunan berada dalam kes yang berbeza, persilangan akan dikira dengan betul.
Atas ialah kandungan terperinci Cara menggunakan fungsi panggil balik untuk membandingkan nama kunci untuk mengira persilangan tatasusunan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!