Works like the PHP array_diff() function, but with multidimensional arrays.
Via composer:
composer require rogervila/array-diff-multidimensionaluse 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'
],
]Comparisons are strict by default, but you can specify that you want to do a loose comparison passing a boolean as a 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);Array Diff Multidimensional is an open-sourced package licensed under the MIT license.
