【发布时间】:2015-03-26 13:09:40
【问题描述】:
我的情况是这样的:我有两组值需要检查差异。然而,array_diff 没有考虑到重复,因此不符合我的目的。假设我们有以下数组:
$valuesA = array('1.00', '3.00', '1.00', '2.00', '3.00', '1.00');
$valuesB = array('1.00', '3.00', '2.00');
现在我想做的是在这两者之间运行差异检查,但要考虑重复值。本质上,在“差异”之后,将存在以下数组:
array('1.00', '3.00', '1.00');
现在我的管理方法如下:
foreach ($valuesA as $indexA => $valueA) {
foreach ($valuesB as $indexB => $valueB) {
if($valueA == $valueB){
unset($valuesB[$indexB]);
unset($valuesA[$indexA]);
continue 2;
}
}
}
我一直觉得,每当我编写像这些 foreaches 这样的嵌套循环时,我做错了什么,或者已经存在更好的解决方案。 所以我的问题是:
有没有更好的方法来实现这些嵌套 foreach 的功能?
【问题讨论】:
-
看看这个答案,看起来像你想要的解决方案:stackoverflow.com/questions/16973365/…
-
如果我误解了,我很抱歉,但
array('1.00', '3.00', '1.00');应该实际阅读array('1.00', '3.00', '2.00');,因为 1.00、3.00 和 2.00 是唯一的唯一值,还是我误解了你在寻找什么?
标签: php arrays foreach nested-loops