@Steely

Есть ли аналог array_diff чтобы оставались неуникальные значения тоже?

Допустим есть массивы:
(1, 1, 2, 3, 4, 3)
(2, 3, 1)

array_diff выдаст мне результат (4), а мне нужно чтобы получилось (1, 3, 4). Т.е. из одного массива вычесть значения другого, но не считать уникальные значения за один и тот же.
  • Вопрос задан
  • 2536 просмотров
Решения вопроса 1
@Steely Автор вопроса
В общем сделал так:

$x = array (1, 1, 2);
$y = array (3, 1, 1, 1, 1);

foreach ($y as $y1) {
$search = array_search($y1, $x);
if ($search !== false) {
unset($x[$search]);
}
}

print_r ($x);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Непонятно зачем, но навскидку так:
$x = array (1, 1, 2, 3, 4, 3 , 3, 3);
$y = array (2, 3, 1);
$z = array_unique(array_intersect($x, $y))+array_unique(array_diff($x, $y));
Ответ написан
array array_intersect_key ( array $array1 , array $array2 );
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы