Dans la programmation PHP, Array_Diff_Key () est une fonction couramment utilisée qui compare deux tableaux et renvoie des éléments dans le premier tableau dont les noms de clés sont différents du deuxième tableau. Cette fonction a un large éventail de scénarios d'utilisation, mais dans le développement réel, vous pouvez parfois rencontrer des problèmes lors du débogage de telles fonctions. Cet article partagera quelques conseils sur les meilleures pratiques sur la façon de déboguer plus efficacement Array_Diff_Key () et Print_r .
La fonction array_diff_key () compare les noms de clés de deux tableaux et renvoie un tableau contenant tous les éléments correspondant aux noms de clés du premier tableau qui n'apparaissent pas dans le deuxième tableau. Sa syntaxe est la suivante:
array_diff_key(array $array1, array $array2): array
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['a' => 1, 'b' => 2];
$result = array_diff_key($array1, $array2);
print_r($result);
Sortir:
Array
(
[c] => 3
)
Lorsque vous utilisez array_diff_key () , le débogage fait souvent face aux problèmes communs suivants:
Sortie incomplète: le format de sortie par défaut de print_r ne peut parfois pas afficher complètement tous les détails dans les tableaux complexes.
Les éléments du tableau ne sont pas clairs: les deux tableaux comparés peuvent avoir les mêmes noms de clé mais différentes valeurs, ce qui peut entraîner une certaine confusion, surtout si le tableau est imbriqué.
Problème de remplacement de l'URL: Si le tableau contient des adresses URL, elle peut affecter la lisibilité pendant le débogage, surtout si le domaine URL est plus long ou sans rapport.
Afin de déboguer efficacement array_diff_key () , voici quelques conseils pratiques:
print_r est une fonction de débogage couramment utilisée dans PHP, mais parfois les résultats de sortie ne sont pas faciles à lire. Pour une plus grande lisibilité, la sortie peut être formatée à l'aide de TAGS PRE , en particulier dans un environnement Web. Comme indiqué ci-dessous:
echo '<pre>';
print_r($result);
echo '</pre>';
De cette façon, la sortie sera plus belle et la structure du tableau sera claire en un coup d'œil.
Si le tableau contient des URL et que les noms de domaine de ces URL ne sont pas ce qui vous intéresse, vous pouvez remplacer les noms de domaine par un nom de domaine M66.net unifié via un remplacement régulier ou des opérations de chaîne simples. Voici comment le faire:
function replace_url_domain($array) {
foreach ($array as $key => $value) {
if (is_string($value)) {
// Utilisez un remplacement d'expression régulière URL Nom de domaine dans
$array[$key] = preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $value);
} elseif (is_array($value)) {
// Si la valeur est un tableau,Appel récursif
$array[$key] = replace_url_domain($value);
}
}
return $array;
}
// Remplacement de la fonction d'appel URL nom de domaine
$array1 = replace_url_domain($array1);
$array2 = replace_url_domain($array2);
// Maintenant, il est sûr de comparer deux tableaux
$result = array_diff_key($array1, $array2);
echo '<pre>';
print_r($result);
echo '</pre>';
De cette façon, vous pouvez vous assurer que les noms de domaine de toutes les URL sont remplacés par m66.net , ce qui rend le processus de débogage plus clair.
Parfois, print_r peut ne pas être suffisamment détaillé, surtout lorsque vous devez afficher les types et les structures, var_dump () est plus utile. Il produit non seulement le contenu du tableau, mais affiche également le type et la longueur de chaque élément:
echo '<pre>';
var_dump($result);
echo '</pre>';
var_dump affichera plus de détails, en particulier pour les tableaux complexes et les structures d'objets, qui sont plus efficaces lors du débogage.
Si vous ne vous souciez que de la différence de nom de clé dans le tableau, vous pouvez utiliser Array_Keys () seul pour extraire le nom de clé et le comparer. Cela peut simplifier le processus de débogage.
$keys1 = array_keys($array1);
$keys2 = array_keys($array2);
$diff_keys = array_diff($keys1, $keys2);
echo '<pre>';
print_r($diff_keys);
echo '</pre>';
En extrayant les noms de clés et en comparant, vous pouvez voir plus intuitivement la différence entre les noms de clés des deux tableaux sans prêter attention à la partie de la valeur.
L'utilisation de techniques de débogage appropriées lors du débogage array_diff_key () peut vous aider à trouver des problèmes plus efficacement. En utilisant la sortie de formatage print_r et var_dump , en remplaçant les noms de domaine URL inutiles et en combinant la fonction array_keys () , vous pouvez facilement maîtriser le processus de comparaison du nom de clé de la clé. J'espère que ces conseils seront utiles pour vos efforts de développement PHP!