在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;}该实现一次只能处理两个数组,但是我认为这并不是一个真正的问题。如果一次需要3个或更多阵列的差异,则可以顺序运行差异。同样,此方法使用密钥检查并进行宽松的验证。



