PHP, как получить значение из массива, если ключ находится в переменной
У меня есть ключ, хранящийся в переменной вроде этого:
$key = 4;
Я попытался получить соответствующее значение следующим образом:
$value = $array[$key];
но это не удалось. Справка.
Ответ 1
Ваш код кажется прекрасным, убедитесь, что указанный вами ключ действительно существует в массиве, или такой ключ имеет значение в вашем массиве, например:
$value = ( array_key_exists($key, $array) && !empty($array[$key]) )
? $array[$key]
: 'non-existant or empty value key';
Ответ 3
Как указывали другие, это скорее всего не срабатывает, потому что запрошенный ключ не существует в массиве. У меня есть вспомогательная функция, которая принимает массив, подозрительный ключ, а также возвращаемый по умолчанию возврат в случае, если ключ не существует.
protected function _getArrayValue($array, $key, $default = null)
{
if (isset($array[$key])) return $array[$key];
return $default;
}
Но, возможно, нет элемента с ключом 4. Если вы хотите получить элемент fiveth независимо от того, какой ключ он имеет, вы можете использовать array_slice: