Я вчера задавал вопрос:
Как можно найти отличия между двумя данными? ,но там был массив обычный. А как быть, когда массив имеет такой вид?
$a1 = array(
['витамин С', 'витамин Б', 'Сахар'],
['цинк', 'витамин Б'], // удалён
['медь', 'Сахар', 'войлок'],
['Кальций', 'Магний', 'Железо'],
['Кислота', 'Витамин К', 'Витамин Е']
);
$a2 = array(
['витамин С', 'витамин Б', 'Сахар'],
['медь', 'Сахар', 'войлок'],
['Кальций', 'Магний', 'Железо'],
['Кислота', 'Витамин К', 'Витамин Е'],
['Лимонад', 'витамин Б'], // добавлен
['Заяц', 'витамин Б', 'Кролик'], // добавлен
);
Суть:
Как получить данные, что во второй записи был добавлено 2 массива и убран 1?
То есть информирование и в случае добавления, и в случаи удаления.
Мне нужно получить именно массивы, а не элементы (слова).
Первая мысль, которая была у меня - это добавить в массив md5 каждого и сравнивать с помощью array_diff_assoc, но уже md5. Но я предполагаю, что это не совсем правильное решение, так как перевод каждой строки в md5 будет занимать время и память. Может быть есть какое-нибудь встроенное решение или более оптимизированное?