gpt4 book ai didi

php - 递归 array_diff()?

转载 作者:IT王子 更新时间:2023-10-29 01:06:58 25 4
gpt4 key购买 nike

我正在寻找一些工具来为我提供两个数组的递归差异。我设想的是一个带有两个颜色编码树结构的网页。在每棵树上,绿色是数组中与两个数组都匹配的部分,红色是每个数组中不匹配的部分。类似于 dBug 的输出

我有一些代码可以给我一个嵌套数组来填充报告。我正在开发一种应该更快的新方法,但我需要测试值和结构,以确保它提供与旧方法相同的输出。

有什么东西可以用吗?或者我需要写这个吗?还是有其他方法可以实现我的目标?

最佳答案

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 个或更多数组的差异,您可以按顺序运行差异。此方法还使用 key 检查并进行松散验证。

关于php - 递归 array_diff()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3876435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com