Задать вопрос
@Steely

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

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

array_diff выдаст мне результат (4), а мне нужно чтобы получилось (1, 3, 4). Т.е. из одного массива вычесть значения другого, но не считать уникальные значения за один и тот же.
  • Вопрос задан
  • 2551 просмотр
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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 );
Ответ написан
Ваш ответ на вопрос

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

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