Skip to content

Latest commit

 

History

History
81 lines (59 loc) · 2.72 KB

File metadata and controls

81 lines (59 loc) · 2.72 KB

Array Diff Multidimensional

Build Status Build status Code Climate StyleCI Total Downloads Latest Stable Version License

SensioLabsInsight

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 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);

License

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