Comparaison des structures de tableaux à l'aide d'un algorithme de comparaison récursif
Question :
Comment pouvez-vous générer une différence récursive de deux tableaux, où les éléments correspondants sont marqués en vert et les éléments non correspondants sont marqués rouge ?
Réponse :
Pour effectuer une comparaison récursive, qui compare les tableaux de manière récursive, vous pouvez utiliser une fonction personnalisée comme celle décrite dans les commentaires de PHP array_diff function :
function arrayRecursiveDiff($aArray1, $aArray2) { $aReturn = array(); foreach ($aArray1 as $mKey => $mValue) { if (array_key_exists($mKey, $aArray2)) { if (is_array($mValue)) { $aRecursiveDiff = arrayRecursiveDiff($mValue, $aArray2[$mKey]); if (count($aRecursiveDiff)) { $aReturn[$mKey] = $aRecursiveDiff; } } else { if ($mValue != $aArray2[$mKey]) { $aReturn[$mKey] = $mValue; } } } else { $aReturn[$mKey] = $mValue; } } return $aReturn; }
Cette fonction parcourt les clés et les valeurs du premier tableau, vérifie si la clé existe dans le deuxième tableau et gère la comparaison en fonction du type de données. S'il y a une inadéquation structurelle ou de valeur, le résultat est ajouté au tableau $aReturn.
Avantages du Diff récursif :
Considérations relatives à la mise en œuvre :
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!