array_diff_assoc
funkcja
Zwraca elementy pierwszej tablicy, których para klucz+wartość nie występuje w pozostałych tablicach. Klucze są zachowane.
array_diff_assoc(array $array, array ...$arrays): array
array_diff_assoc działa jak array_diff, ale bierze pod uwagę zarówno klucz, jak i wartość — element z pierwszej tablicy trafia do wyniku tylko wtedy, gdy żadna z pozostałych tablic nie posiada elementu o dokładnie tym samym kluczu i tej samej wartości. Klucze oryginalnej tablicy są zachowane, wynik nie jest reindeksowany. Porównanie odbywa się jako string. Przydaje się do wykrywania zmian w konfiguracji, różnic między wersją zapisaną a nową, czy audytu danych.
<?php
declare(strict_types=1);
$stara = ['status' => 'aktywny', 'rola' => 'admin', 'limit' => 100];
$nowa = ['status' => 'aktywny', 'rola' => 'user', 'limit' => 100];
print_r(array_diff_assoc($nowa, $stara));
// Array
// (
// [rola] => user
// )
Klucz rola jest w wyniku, bo wartość się zmieniła. Klucze status i limit są identyczne w obu tablicach, więc nie trafiają do różnicy.