Maison  >  Article  >  développement back-end  >  Comment utiliser la fonction de rappel pour comparer les noms de clés afin de calculer l'intersection des tableaux en PHP

Comment utiliser la fonction de rappel pour comparer les noms de clés afin de calculer l'intersection des tableaux en PHP

WBOY
WBOYavant
2024-03-19 12:37:07351parcourir

L'éditeur PHP Youzi vous présentera en détail comment utiliser la fonction de rappel pour comparer les noms de clés afin de calculer l'intersection des tableaux. En PHP, nous pouvons utiliser la fonction array_uintersect_assoc() combinée à une fonction de rappel personnalisée pour comparer des tableaux en fonction des noms de clés et renvoyer le résultat de l'intersection. Grâce à des exemples de code concis et des explications étape par étape, vous maîtriserez facilement cette compétence pratique, rendant votre développement PHP plus efficace et flexible.

PHP utilise la fonction de rappel pour comparer les noms de clés afin de calculer l'intersection des tableaux

 :

Pour calculer l'intersection de deux tableaux, c'est-à-dire des éléments qui partagent le même nom de clé, vous pouvez utiliser la fonction de phparray_intersect_key(). Cette fonction parcourt le premier tableau et vérifie si un élément avec la même clé existe dans le deuxième tableau à l'aide de la fonction de rappel fournie.

Voici la syntaxe de la fonction :

array_intersect_key(array $array1, array $array2, callable $key_compare_func)

Parmi eux :

  • $array1 : le premier tableau
  • $array2 : Le deuxième tableau
  • $key_compare_func : Fonction de rappel pour comparer les noms de clés

La fonction de rappel doit accepter deux paramètres, représentant les deux noms de clés à comparer, et renvoyer une valeur booléenne indiquant si les deux noms de clés sont égaux.

L'exemple suivant montre comment calculer l'intersection de deux tableaux à l'aide de la fonction array_intersect_key(), โดยใช้ callback function เปรียบเทียบชื่อคีย์ :

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

?>

Sortie :

Array
(
[apple] => green
[banana] => green
)

Dans cet exemple, la fonction de rappel $key_compare_func 比较两个键名是否相等。只有 applebanana compare deux noms de clés pour vérifier leur égalité. Seules les clés apple et banana existent dans les deux tableaux, elles forment donc l'intersection.

Utilisez les fonctions anonymes :

Vous pouvez également utiliser des fonctions anonymes pour définir des fonctions de rappel afin de les rendre plus concises. Voici le même exemple utilisant des fonctions anonymes :

$intersection = array_intersect_key($array1, $array2, function($key1, $key2) {
return $key1 === $key2;
});

Utilisation des fonctions fléchées (PHP 7.4 et supérieur) :

En PHP 7.4 et supérieur, vous pouvez utiliser les fonctions fléchées pour simplifier davantage votre code :

$intersection = array_intersect_key($array1, $array2, fn($key1, $key2) => $key1 === $key2);

Comparaison des noms de clés personnalisés :

La fonction de rappel permet une logique de comparaison personnalisée des noms de clés. Par exemple, vous pouvez utiliser la fonction de rappel suivante pour comparer les noms de clés sans tenir compte de la casse :

$key_compare_func = function($key1, $key2) {
return strtolower($key1) === strtolower($key2);
};

De cette façon, même si les noms de clés des tableaux sont dans des cas différents, l'intersection sera calculée correctement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer