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)
var_dump($result);
The result of comparing $new
with $old
will return a new array with the changes:
[
'c' => [
'f' => 'Hello'
],
]
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.