Skip to content


Repository files navigation

Array Diff Multidimensional

Build Status StyleCI Total Downloads Latest Stable Version License

Works like the PHP array_diff() function, but with multidimensional arrays.


Via composer:

composer require rogervila/array-diff-multidimensional


use Rogervila\ArrayDiffMultidimensional;

$new = [
	'a' => 'b',
	'c' => [
		'd' => 'e',
		'f' => 'Hello',

$old = [
	'a' => 'b',
	'c' => [
		'd' => 'e',
		'f' => 'Goodbye',

// Compare the arrays by calling the 'compare' class method
$result = ArrayDiffMultidimensional::compare($new, $old)

// Or by calling the global helper function
$result = array_diff_multidimensional($new, $old)


The result of comparing $new with $old will return a new array with the changes:

	'c' => [
		'f' => 'Hello'

Strict vs. Loose comparisons

Comparisons are strict by default, but you can specify that you want to make a loose comparison passing a boolean as the third parameter for compare method or calling the looseComparison

// Passing 'false' as a third parameter will deactivate the strict comparison mode
ArrayDiffMultidimensional::compare($new, $old, false);

array_diff_multidimensional($new, $old, false);

// This method call is equivalent
ArrayDiffMultidimensional::looseComparison($new, $old);

Also, a strictComparison method is available for more clarity

// Comparisons are strict by default
ArrayDiffMultidimensional::compare($new, $old);

array_diff_multidimensional($new, $old);

// This method call is equivalent
ArrayDiffMultidimensional::strictComparison($new, $old);


Array Diff Multidimensional is an open-sourced package licensed under the MIT license.