Сравнение списков на php

f0x
На сайте с 20.09.2006
Offline
116
f0x
886

Есть 2 списка:

Список А

Список B

Списки содержат по несколько сотен тысяч строк.

Есть задача сравнить оба списка и из списка В выкинуть все строки, которые есть в списке А.

Я делаю так, закидываю оба списка в массивы:

$arrayA

$arrayB

После делаю проход по массиву $arrayB и смотрю проверяю, есть ли элемент в массиве $arrayA

Если есть , то удаляю его из массива $arrayB

так


foreach ($arrayB as $foo) {
if (in_array($foo, $arrayA))
unset($arrayB[array_search($foo, $arrayB)]);
}

Все это крайне долго работает.

Друзья. Подскажите более шустрый вариант.

Спасибо!

LEOnidUKG
На сайте с 25.11.2006
Offline
1752
#1

Т.е. поиск в гугле ничего дал?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
f0x
На сайте с 20.09.2006
Offline
116
f0x
#2
LEOnidUKG:
Т.е. поиск в гугле ничего дал?

То есть ничего, что касается PHP

LEOnidUKG
На сайте с 25.11.2006
Offline
1752
#3
f0x:
То есть ничего, что касается PHP

Вот прямо:

https://www.google.ru/search?client=opera&q=php+сравнение+двух+массивов&sourceid=opera&ie=UTF-8&oe=UTF-8

10 страниц прошли и НИ ОДНОГО ответа на ваш вопрос? 😮

f0x
На сайте с 20.09.2006
Offline
116
f0x
#4
LEOnidUKG:
Вот прямо:
https://www.google.ru/search?client=opera&q=php+сравнение+двух+массивов&sourceid=opera&ie=UTF-8&oe=UTF-8

10 страниц прошли и НИ ОДНОГО ответа на ваш вопрос? 😮

Ага, я то искал сравнение списков )))

Тупанул. Спасибо

L
На сайте с 07.12.2007
Offline
351
#5
f0x:
Есть задача сравнить оба списка и из списка В выкинуть все строки, которые есть в списке А.

array_diff($B, $A) сравнивает $B с одним или несколькими другими массивами и возвращает значения из $B, которые отсутствуют во всех других массивах.

PS: Обратите внимание - возвращает не разницу массивов!, на многих сайтах перевод - неправильный.

f0x
На сайте с 20.09.2006
Offline
116
f0x
#6
Ladycharm:
array_diff($B, $A) сравнивает $B с одним или несколькими другими массивами и возвращает значения из $B, которые отсутствуют во всех других массивах.

PS: Обратите внимание - возвращает не разницу массивов!, на многих сайтах перевод - неправильный.

Да, так и сделал array_diff то что мне было нужно, просто забыл совсем про эту функцию, так как не использовал ранее и сделал свой корявый велик

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий