• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/lib/util/arrayhelper.php
  • Класс: BitrixTimemanUtilArrayHelper
  • Вызов: ArrayHelper::getValue
static function getValue($array, $key, $default = null)
{
	if ($key instanceof Closure)
	{
		return $key($array, $default);
	}

	if (is_array($key))
	{
		$lastKey = array_pop($key);
		foreach ($key as $keyPart)
		{
			$array = static::getValue($array, $keyPart);
		}
		$key = $lastKey;
	}

	if (is_array($array) && (isset($array[$key]) || array_key_exists($key, $array)))
	{
		return $array[$key];
	}

	if (($pos = mb_strrpos($key, '.')) !== false)
	{
		$array = static::getValue($array, mb_substr($key, 0, $pos), $default);
		$key = mb_substr($key, $pos + 1);
	}

	if (is_object($array))
	{
		return $array->$key;
	}
	elseif (is_array($array))
	{
		return (isset($array[$key]) || array_key_exists($key, $array)) ? $array[$key] : $default;
	}
	else
	{
		return $default;
	}
}