数组的递归比较
比较两个数组时,执行递归 diff 来探索嵌套结构并识别差异通常很有用在每个级别。这对于测试新算法的输出或确保数据保持一致特别有价值。
现有函数
幸运的是,有一个现成的函数,称为 arrayRecursiveDiff () 提供递归数组比较。它在 PHP array_diff() 函数的注释中实现,可以按如下方式使用:
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; }
该函数接受两个数组作为参数,并返回一个包含它们之间差异的数组。匹配的元素用绿色表示,不匹配的部分用红色突出显示。
用法
要使用 arrayRecursiveDiff() 函数进行可视化,可以通过将结果发送到 dBug 等工具或创建您自己的自定义报告界面。
替代方案方法
如果您喜欢不同的方法,您可以构建自己的递归 diff 函数或探索提供数组比较功能的其他 PHP 库。然而, arrayRecursiveDiff() 函数提供了一种简单有效的方法来比较深度嵌套的数组。
以上是如何找到 PHP 中深度嵌套数组之间的差异?的详细内容。更多信息请关注PHP中文网其他相关文章!