Position actuelle: Accueil> Derniers articles> Utilisez array_map () pour convertir les tableaux, puis utilisez array_diff_uassoc () pour comparer

Utilisez array_map () pour convertir les tableaux, puis utilisez array_diff_uassoc () pour comparer

M66 2025-05-15

Dans PHP, array_map () et array_diff_uassoc () sont deux fonctions très utiles qui peuvent nous aider à traiter et à comparer les tableaux dans différents scénarios. Cet article présentera d'abord comment convertir les tableaux à l'aide de array_map () , puis d'utiliser array_diff_uassoc () pour comparaison et donne des exemples spécifiques.

1. Introduction à la fonction array_map ()

La fonction array_map () peut convertir chaque élément d'un tableau via une fonction de rappel. La syntaxe de base est la suivante:

 array_map(callable $callback, array $array1, array ...$arrays);
  • $ rappel : une fonction de rappel utilisée pour traiter les éléments du tableau.

  • $ array1, ... $ Arrays : un ou plusieurs tableaux d'entrée.

array_map () renvoie un nouveau tableau où chaque élément est une valeur traitée par la fonction de rappel $ .

2. Introduction à array_diff_uassoc ()

La fonction array_diff_uassoc () est utilisée pour comparer deux tableaux ou plus, renvoyant des éléments dans le premier tableau avec ni noms de clés ni valeurs par rapport à d'autres tableaux. Contrairement à l' array_diff ordinaire, Array_Diff_uassoc () nous permet de fournir une fonction de comparaison personnalisée pour comparer les noms de clés.

La syntaxe de base est la suivante:

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func);
  • $ Array1 : Le premier tableau à comparer.

  • $ array2 : le deuxième tableau à comparer.

  • $ key_compare_func : une fonction de rappel utilisée pour comparer les noms de clés du tableau.

3. Exemple: utilisez array_map () et array_diff_uassoc () en combinaison

Jetons maintenant un coup d'œil à un exemple pratique, comment convertir la valeur d'un tableau à l'aide d'Array_Map () , puis d'utiliser array_diff_uassoc () pour comparaison.

Supposons que nous ayons deux tableaux représentant les prix et les noms des deux ensembles de produits:

 $products1 = [
    101 => "Apple",
    102 => "Banana",
    103 => "Orange"
];

$products2 = [
    101 => "Apple",
    102 => "Grapes",
    104 => "Mango"
];

// prix
$prices1 = [
    101 => 3,
    102 => 2,
    103 => 1
];

$prices2 = [
    101 => 3,
    102 => 2.5,
    104 => 1.5
];

Supposons que nous voulons convertir le nom du produit en majuscules et utiliser array_diff_uassoc () pour comparer les éléments avec des prix différents et les mêmes noms de clés en deux réseaux de prix.

 // Convertir d'abord le nom du produit en majuscules
$products1 = array_map('strtoupper', $products1);
$products2 = array_map('strtoupper', $products2);

// utiliser array_diff_uassoc 比较prix数组(Le nom de clé est le même,prix不同)
$price_diff = array_diff_uassoc($prices1, $prices2, function ($key1, $key2) {
    return $key1 - $key2;
});

print_r($price_diff);

4. Expliquez le code

  1. Nous utilisons Array_Map ('Strtoupper', $ products1) et array_map ('strtoupper', $ products2) pour convertir les noms de produits en lettres majuscules. De cette façon, nous pouvons nous assurer que la comparaison des noms n'est pas affectée par la partie supérieure et les minuscules.

  2. array_diff_uassoc () est utilisé pour comparer les réseaux de prix. Nous fournissons une fonction de rappel simple pour comparer les noms de clés ( $ key1 - $ key2 ). Si les noms clés des deux tableaux sont les mêmes mais que les prix correspondants sont différents, array_diff_uassoc () renverra ces éléments.

5. Résultat de sortie

Lors de l'exécution du code ci-dessus, nous obtenons une sortie:

 Array
(
    [102] => 2
    [104] => 1.5
)

Dans cet exemple, les prix des ID de produit 102 et 104 sont différents, ils sont donc retournés.

Résumer

Cet article décrit comment utiliser les fonctions array_map () et array_diff_uassoc () en php. Nous utilisons d'abord array_map () pour convertir des éléments dans le tableau, puis comparer les éléments avec différents noms de clés et des valeurs correspondantes dans deux tableaux via array_diff_uassoc () . De cette façon, nous pouvons traiter et comparer de manière flexible les tableaux en fonction des différents besoins.


Diviser les lignes entre la queue et le contenu de l'article