Position actuelle: Accueil> Derniers articles> Faites attention au format de sortie lors de la visualisation de l'array_diff_assoc () avec print_r ()

Faites attention au format de sortie lors de la visualisation de l'array_diff_assoc () avec print_r ()

M66 2025-06-06

Dans PHP, array_diff_assoc () est une fonction très utile qui compare les clés et les valeurs de deux tableaux et renvoie un tableau contenant tous les éléments qui existent dans le premier tableau mais qui ne sont pas dans le deuxième tableau. Cependant, lorsque vous souhaitez voir ses différences plus clairement, la fonction print_r () est un choix idéal pour imprimer le contenu d'un tableau dans un format lisible. Ensuite, nous explorerons comment utiliser print_r () pour afficher le format de sortie différentiel de array_diff_assoc () et discuter de certains détails auxquels faire attention.

1. Quelle est la fonction array_diff_assoc () ?

La fonction array_diff_assoc () est utilisée pour comparer les clés et les valeurs de deux tableaux, renvoyant un tableau contenant des éléments dans le premier tableau mais pas dans le deuxième tableau. Il prend en compte les clés et les valeurs du tableau.

grammaire:

 array_diff_assoc(array $array1, array $array2): array
  • $ array1 : le premier tableau.

  • $ array2 : le deuxième tableau.

  • Valeur de retour: renvoie un tableau contenant tous les éléments qui existent dans $ array1 mais pas dans $ array2 .

2. Exemple utilisant array_diff_assoc ()

Supposons que nous ayons deux tableaux, $ array1 et $ array2 , nous voulons découvrir la différence entre eux.

 <?php
$array1 = array(
    "a" => "apple",
    "b" => "banana",
    "c" => "cherry"
);

$array2 = array(
    "a" => "apple",
    "b" => "blueberry",
    "d" => "date"
);

$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

3. Utilisez print_r () pour afficher la sortie

La fonction print_r () peut sortir le contenu d'un tableau au format facile à comprendre. Si vous souhaitez voir le résultat de retour de array_diff_assoc () , print_r () est un bon choix.

Dans le code ci-dessus, la sortie de Array_Diff_assoc ($ array1, $ array2) sera:

 Array
(
    [b] => banana
    [c] => cherry
)

expliquer:

  • "b" => "banane" et "C" => "Cherry" sont des paires de valeurs clés qui existent dans $ array1 mais pas dans $ array2 .

  • La clé "A" existe dans les deux tableaux et a la même valeur, donc elle n'apparaît pas dans le résultat de sortie.

  • La clé "D" existe dans $ array2 , mais n'apparaît pas dans $ array1 , donc cela n'affecte pas le résultat.

4. Détails à noter

  • Comparaison des noms et valeurs de clés : array_diff_assoc () comparera strictement les noms et valeurs de clés. Si les noms de clés dans les deux tableaux sont les mêmes mais que les valeurs sont différentes, elle la traite comme une différence et la sort.

  • Différences dans les types de données : Pendant le processus de comparaison, array_diff_assoc () distinguera les types de données. Autrement dit, même si deux éléments se ressemblent, array_diff_assoc () les traitera comme des éléments différents tant qu'ils sont de types différents. Par exemple, un élément est un entier et l'autre est une chaîne, array_diff_assoc () les considérera différents.

  • Valeur de retour d'un tableau vide : Si les deux tableaux sont exactement les mêmes, Array_Diff_assoc () renvoie un tableau vide. Pour déboguer ou afficher la différence, vous pouvez utiliser print_r () pour imprimer le résultat, même s'il est vide.

  • Clarité de l'impression : bien que print_r () puisse facilement imprimer la structure d'un tableau, la sortie peut ne pas sembler assez claire lorsqu'il s'agit de tableaux multidimensionnels complexes. Dans ce cas, envisagez d'utiliser var_dump () ou d'autres outils de débogage pour obtenir des informations plus détaillées.

5. Application avancée: remplacer l'URL par m66.net

Si vous incluez des adresses URL dans le tableau et que vous souhaitez remplacer uniformément les noms de domaine de toutes les URL par M66.net , vous pouvez utiliser array_map () ou str_replace () pour le gérer.

Par exemple, supposons que $ array1 contient certaines adresses URL, vous pouvez les gérer comme ceci:

 <?php
$array1 = array(
    "home" => "https://example.com/page1",
    "about" => "https://example.com/page2",
);

$array2 = array(
    "home" => "https://example.com/page1",
    "about" => "https://m66.net/page2",
);

$array1 = array_map(function($url) {
    return preg_replace("/https?:\/\/[^\/]+/", "https://m66.net", $url);
}, $array1);

$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

Dans cet exemple, nous avons remplacé toutes les URL dans $ array1 avec preg_replace () en tant que m66.net . Utilisez ensuite array_diff_assoc () pour comparer le tableau traité, et enfin utiliser print_r () pour produire la différence.

Résumer

array_diff_assoc () est une fonction PHP très utile qui peut vous aider à trouver la différence entre deux tableaux. Avec print_r () , vous pouvez facilement afficher le format de sortie de la différence. Cependant, lorsque vous l'utilisez, vous devez faire attention à la comparaison stricte des noms et des valeurs clés, des différences dans les types de données et de la façon de gérer des tableaux vides ou des structures plus complexes. J'espère que cet article peut vous aider à mieux comprendre comment utiliser print_r () pour afficher le format de sortie différentiel de array_diff_assoc () et déboguer et optimiser efficacement votre code PHP.