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.

PHP array_diff_assoc() Related PHP Functions