Разница в массивах с дубликатами

Мой сценарий таков: у меня есть два набора значений, которые мне нужно проверить на различия. Однако 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;

}
}
}

Я всегда чувствовал, что всякий раз, когда я пишу вложенные циклы, такие как эти foreach, я делаю что-то не так или что уже существует лучшее решение.
Итак, мой вопрос заключается в следующем:

Есть ли лучший способ достичь того, что делают эти вложенные foreach?

0

Решение

array_intersect($valuesA, $valuesB);
-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]