Dans PHP, array_diff_ukey () et array_map () sont des fonctions de tableau très couramment utilisées, qui sont utilisées pour comparer les clés et le filtre du tableau, et pour cartographier et convertir les tableaux respectivement. Cet article présentera comment utiliser ces deux fonctions en combinaison pour implémenter le filtrage et la conversion des clés de tableau.
array_diff_ukey () est utilisé pour comparer les clés de deux tableaux ou plus et renvoyer un tableau contenant des éléments avec différentes clés. La syntaxe de cette fonction est la suivante:
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$ array1 et $ array2 sont deux tableaux à comparer.
$ key_compare_func est une fonction de rappel qui compare les touches dans deux tableaux.
Cette fonction détermine comment comparer les clés via la fonction de rappel. Si la fonction de rappel renvoie 0, cela signifie que la clé est la même; Il renvoie une valeur négative, cela signifie que la clé de $ array1 est plus petite que la clé de $ array2 ; Il renvoie une valeur positive, cela signifie que la clé de $ array1 est plus grande que la clé de $ array2 .
array_map () est utilisé pour appliquer une fonction de rappel à chaque élément du tableau et renvoyer un nouveau tableau. La syntaxe est la suivante:
array_map(callable $callback, array $array): array
$ rappel est une fonction de rappel appliquée à chaque élément.
$ Array est le tableau à mapper.
Nous pouvons utiliser array_diff_ukey () pour filtrer les touches, puis convertir les valeurs du tableau via array_map () . Voici un exemple pratique qui montre comment utiliser ces deux fonctions en combinaison pour filtrer et convertir les clés.
<?php
// Tableau d'origine
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4
];
// Comparez les tableaux,Supposons que nous voulons garder 'a' et 'c' Ces deux clés
$array2 = [
'a' => 10,
'c' => 20
];
// utiliser array_diff_ukey Filtrer pas $array2 Clés présentes dans
$filteredArray = array_diff_ukey($array1, $array2, function($key1, $key2) {
return $key1 <=> $key2; // Comparez la taille de la clé
});
// utiliser array_map Convertir les valeurs en tableaux filtrés,Ici, nous multiplions la valeur par 10
$transformedArray = array_map(function($value) {
return $value * 10;
}, $filteredArray);
// Résultat de sortie
print_r($transformedArray);
?>
Nous définissons d'abord un tableau brut $ array1 et un tableau Array Array2 pour comparaison.
Grâce à la fonction array_diff_ukey () , nous comparons les clés de $ array1 et $ array2 et filtrons ces clés dans $ array1 qui ne sont pas dans $ array2 . Dans cet exemple, le tableau filtré $ filteredArray contiendra les éléments correspondant aux clés «A» et «C» .
Ensuite, nous utilisons array_map () pour convertir la valeur du tableau $ filteredArray . Dans cet exemple, nous multiplions la valeur par 10 pour générer un nouveau tableau $ transformaRray .
Enfin, nous avons sorti le tableau converti.
Grâce à l'utilisation combinée de array_diff_ukey () et array_map () , nous pouvons implémenter le filtrage des clés du tableau et la conversion de leurs valeurs. De telles combinaisons permettent la flexibilité de gérer les opérations de données complexes, en particulier lorsque des clés et des valeurs de tableau sont nécessaires.