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\Utility
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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 ; } |
Please login to continue.