【问题标题】:Arrays difference with duplicates数组与重复的差异
【发布时间】: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


【解决方案1】:
array_intersect($valuesA, $valuesB);

【讨论】:

    猜你喜欢
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 2012-05-31
    • 2013-07-06
    • 2017-08-17
    相关资源
    最近更新 更多