array_intersect_assoc
funkcja
Zwraca elementy pierwszej tablicy, których para klucz+wartość występuje we wszystkich pozostałych tablicach. Klucze są zachowane.
array_intersect_assoc(array $array, array ...$arrays): array
array_intersect_assoc to uzupełnienie array_diff_assoc — zamiast różnicy zwraca część wspólną. Element z pierwszej tablicy trafia do wyniku tylko wtedy, gdy każda z pozostałych tablic zawiera element o dokładnie tym samym kluczu i tej samej wartości. Klucze są zachowane. Porównanie odbywa się jako string. Przydaje się do znajdowania niezmienionej części konfiguracji, wspólnych uprawnień czy danych pasujących do wielu zestawów filtrów.
<?php
declare(strict_types=1);
$stara = ['status' => 'aktywny', 'rola' => 'admin', 'limit' => 100];
$nowa = ['status' => 'aktywny', 'rola' => 'user', 'limit' => 100];
print_r(array_intersect_assoc($stara, $nowa));
// Array
// (
// [status] => aktywny
// [limit] => 100
// )
W wyniku są tylko pary klucz-wartość identyczne w obu tablicach. Klucz rola odpada, bo wartości się różnią (admin vs user).