You are here

function _features_remove_ignores in Features 7.2

Helper to removes a set of keys an object/array.

@internal Designed for internal use within

Parameters

object|array $item: An object or array passed by reference.

int[] $ignore_keys: Array of keys to be ignored. Values are the level of the key. Format: $[$key] = $level.

int $level: Level of key to remove. Up to 2 levels deep because $item can still be recursive.

See also

features_sanitize().

1 call to _features_remove_ignores()
features_sanitize in ./features.export.inc
Helper function to "sanitize" an array or object.

File

./features.export.inc, line 1655
Contains functions that export configuration into feature modules.

Code

function _features_remove_ignores(&$item, $ignore_keys, $level = -1) {
  $is_object = is_object($item);
  if (!is_array($item) && !is_object($item)) {
    return;
  }
  foreach ($item as $key => &$value) {
    if (isset($ignore_keys[$key]) && $ignore_keys[$key] == $level) {
      if ($is_object) {
        unset($item->{$key});
      }
      else {
        unset($item[$key]);
      }
    }
    elseif ($level < 2 && (is_array($value) || is_object($value))) {
      _features_remove_ignores($value, $ignore_keys, $level + 1);
    }
  }
  unset($value);
}