Функция array_diff_keys()
не совсем так работает. Нужно чтобы результатом было полное расхождение. Т.е. все элементы из А
которые отсутствуют в B
и все элементы из B
которые отсутствуют в А
.
Т.е. так:
array_merge(array_diff_keys($a, $b), array_diff_keys($b, $a));
Есть ли проще варианты ?
array_diff_keys эквивалент операции над множествами "разность"
A\B={x|(x in A) and (x non in B)}
Вы хотите операцию симметрической разности:
A delta B = {x|(x in A and x in B) and (x not in AB)}
Соответственно симметрическая разность так и реализуется:
A delta B=(A\B)+(B\A)
array_merge(array_diff_keys($a, $b), array_diff_keys($b, $a));
В PHP реализованы операции объединения (array_merge), пересечения (array_intersect) и разности (array_diff). Остальные операции над множествами реализуются через их композицию.
Если вы хотите получить только уникальные различия, то можно дополнительно обернуть в array_unique
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня на сайте генерируется xml-файлВыборку я сделал через цикл for кусками по 50 тыс записей за цикл (ранее была выборка сразу всех записей)
В данным момент я реализовал вывод, но получаю только одну категорию(последнюю)