Rumah > pembangunan bahagian belakang > tutorial php > Cara menggunakan fungsi panggil balik untuk membandingkan nama kunci untuk mengira persilangan tatasusunan dalam PHP

Cara menggunakan fungsi panggil balik untuk membandingkan nama kunci untuk mengira persilangan tatasusunan dalam PHP

WBOY
Lepaskan: 2024-03-19 12:40:01
ke hadapan
397 orang telah melayarinya

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

Antaranya:

  • $array1: tatasusunan pertama
  • $array2: Tatasusunan kedua
  • $key_compare_func: Fungsi panggil balik untuk membandingkan nama kunci

Fungsi 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);

?>
Salin selepas log masuk

Keluaran:

Array
(
[apple] => green
[banana] => green
)
Salin selepas log masuk

Dalam contoh ini, fungsi panggil balik $key_compare_func 比较两个键名是否相等。只有 applebanana 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;
});
Salin selepas log masuk

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

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

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!

Label berkaitan:
sumber:lsjlt.com
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