public static function remove(&$array, $key)
{
$key = static::normalizeKey($key);
if ($key === null || $key === '') {
return $array = [];
}
$keys = explode('.', $key);
$last = array_pop($keys);
$currentElement =& $array;
foreach ($keys as $currentKey) {
if (!array_key_exists($currentKey, $currentElement) || !is_array($currentElement[$currentKey])) {
$currentElement[$currentKey] = [];
}
$currentElement =& $currentElement[$currentKey];
}
unset($currentElement[$last]);
return $array;
}