Php 数组与副本的差异

Php 数组与副本的差异,php,arrays,foreach,nested-loops,Php,Arrays,Foreach,Nested Loops,我的场景是这样的:我需要检查两组值的差异。但是,array_diff不考虑复制,因此不符合我的目的。假设我们有以下阵列: $valuesA = array('1.00', '3.00', '1.00', '2.00', '3.00', '1.00'); $valuesB = array('1.00', '3.00', '2.00'); 现在我要做的是在这两者之间运行差异检查,但要考虑重复的值。本质上,在“diff”之后,将存在以下数组: array('1.00', '3.00', '1.00'

我的场景是这样的:我需要检查两组值的差异。但是,array_diff不考虑复制,因此不符合我的目的。假设我们有以下阵列:

$valuesA = array('1.00', '3.00', '1.00', '2.00', '3.00', '1.00');
$valuesB = array('1.00', '3.00', '2.00');
现在我要做的是在这两者之间运行差异检查,但要考虑重复的值。本质上,在“diff”之后,将存在以下数组:

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这样的嵌套循环时,我都在做错事,或者已经存在更好的解决方案。 所以我的问题是:

有没有更好的方法来实现这些嵌套的前额呢


看看这个答案,看起来就像你想要的解决方案:如果我误解了,我很抱歉,但是应该
array('1.00','3.00','1.00')实际读取
数组('1.00','3.00','2.00')因为1.00、3.00和2.00是唯一的唯一值,还是我误解了您的要求?
array_intersect($valuesA, $valuesB);