protected ConfigFactoryOverrideBase::filterNestedArray(array $original_data, array &$override_data)
Filters data in nested arrays.
Parameters
array $original_data: Original data array to filter against.
array $override_data: Override data to filter.
Return value
bool TRUE if $override_data was changed, FALSE otherwise.
File
- core/lib/Drupal/Core/Config/ConfigFactoryOverrideBase.php, line 87
Class
- ConfigFactoryOverrideBase
- Defines a base event listener implementation configuration overrides.
Namespace
Drupal\Core\Config
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | protected function filterNestedArray( array $original_data , array & $override_data ) { $changed = FALSE; foreach ( $override_data as $key => $value ) { if (!isset( $original_data [ $key ])) { // The original data is not there anymore, remove the override. unset( $override_data [ $key ]); $changed = TRUE; } elseif ( is_array ( $override_data [ $key ])) { if ( is_array ( $original_data [ $key ])) { // Do the filtering one level deeper. // Ensure that we track $changed along the way. if ( $this ->filterNestedArray( $original_data [ $key ], $override_data [ $key ])) { $changed = TRUE; } // If no overrides are left under this level, remove the level. if ( empty ( $override_data [ $key ])) { unset( $override_data [ $key ]); $changed = TRUE; } } else { // The override is an array but the value is not, this will not go // well, remove the override. unset( $override_data [ $key ]); $changed = TRUE; } } } return $changed ; } |
Please login to continue.