Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как сравнить два массива

Короткий ответ

Оператор == сравнивает пары «ключ — значение», === — ещё порядок и типы:

<?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 — Возвращает элементы первого массива, которых нет в других, сравнивая и ключи, и значения.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.