The Wayback Machine - https://web.archive.org/web/20211027173030/https://github.com/rogervila/array-diff-multidimensional
Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Array Diff Multidimensional

Build Status StyleCI Total Downloads Latest Stable Version License

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

Install

Via composer:

composer require rogervila/array-diff-multidimensional

Usage

use Rogervila\ArrayDiffMultidimensional;

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

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

var_dump(ArrayDiffMultidimensional::compare($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

// This will deactivate the strict comparison mode
ArrayDiffMultidimensional::compare($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);

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

License

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