Как сравнить два массива
Короткий ответ
Оператор == сравнивает пары «ключ — значение», === — ещё порядок и типы:
<?php
var_dump(['a' => 1, 'b' => 2] == ['b' => 2, 'a' => 1]);
var_dump(['a' => 1, 'b' => 2] === ['b' => 2, 'a' => 1]);Результат:
bool(true)
bool(false)Что добавилось и что пропало
array_diff() возвращает значения первого массива, которых нет во втором:
<?php
$before = ['php', 'sql', 'css'];
$after = ['php', 'css', 'js'];
echo implode(', ', array_diff($after, $before)), ' | ', implode(', ', array_diff($before, $after));Результат:
js | sqlОбщие элементы
Для этого есть array_intersect():
<?php
echo implode(', ', array_intersect(['php', 'sql', 'css'], ['php', 'css', 'js']));Результат:
php, cssФункции из этого ответа
- array_diff — Возвращает значения первого массива, которых нет в остальных.
- array_intersect — Возвращает значения, которые есть во всех массивах.
- array_diff_assoc — Возвращает элементы первого массива, которых нет в других, сравнивая и ключи, и значения.