PHP array_diff_assoc() Function
Quick summary: The PHP array_diff_assoc() function compares the values and keys of two (or more) arrays, and returns the differences.
PHP array_diff_assoc() Syntax
array_diff_assoc(array $array, array ...$arrays): array
PHP
PHP array_diff_assoc() Basic examples
$a = ['a'=>1,'b'=>2];
$b = ['a'=>1,'b'=>3];
print_r(array_diff_assoc($a,$b));
PHP
Output:
Array ( [b] => 2 )
Compares both keys and values and returns differences.
PHP array_diff_assoc() Real-world usage
$old = ['id'=>1,'status'=>'active'];
$new = ['id'=>1,'status'=>'inactive'];
print_r(array_diff_assoc($old,$new));
PHP
Output:
Array ( [status] => active )
Detect changed fields between two records.
PHP array_diff_assoc() Edge cases
$a = ['1'=>'value'];
$b = [1=>'value'];
print_r(array_diff_assoc($a,$b));
PHP
Output:
Array ( )
String and integer keys may be treated as equal.
PHP array_diff_assoc() Common mistakes
Confusing with array_diff()
array_diff_assoc() compares keys and values.
Incorrect
array_diff($a,$b);
Correct
array_diff_assoc($a,$b);
Use array_diff_assoc() when keys matter.
PHP array_diff_assoc() Frequently Asked Questions
What does array_diff_assoc() do?
Computes difference of arrays with additional index check.
Difference from array_diff()?
Also compares keys.
Use case?
Strict array comparison.
Return type?
Array.
Common mistake?
Expecting loose comparison.
Performance?
Moderate.
Handles nested arrays?
No.
Safe?
Yes.
Alternative?
array_udiff().
Key sensitive?
Yes.
Value sensitive?
Yes.
Best practice?
Use for strict diffs.