On this page
public static function DiffArray::diffAssocRecursive
public static DiffArray::diffAssocRecursive(array $array1, array $array2)
Recursively computes the difference of arrays with additional index check.
This is a version of array_diff_assoc() that supports multidimensional arrays.
Parameters
array $array1: The array to compare from.
array $array2: The array to compare to.
Return value
array Returns an array containing all the values from array1 that are not present in array2.
File
- core/lib/Drupal/Component/Utility/DiffArray.php, line 27
Class
- DiffArray
- Provides helpers to perform diffs on multi dimensional arrays.
Namespace
Drupal\Component\UtilityCode
public static function diffAssocRecursive(array $array1, array $array2) {
$difference = array();
foreach ($array1 as $key => $value) {
if (is_array($value)) {
if (!array_key_exists($key, $array2) || !is_array($array2[$key])) {
$difference[$key] = $value;
}
else {
$new_diff = static::diffAssocRecursive($value, $array2[$key]);
if (!empty($new_diff)) {
$difference[$key] = $new_diff;
}
}
}
elseif (!array_key_exists($key, $array2) || $array2[$key] !== $value) {
$difference[$key] = $value;
}
}
return $difference;
}
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Component!Utility!DiffArray.php/function/DiffArray::diffAssocRecursive/8.1.x