PHP, как получить значение из массива, если ключ находится в переменной

У меня есть ключ, хранящийся в переменной вроде этого:

$key = 4;

Я попытался получить соответствующее значение следующим образом:

$value = $array[$key];

но это не удалось. Справка.

Ответы

Ответ 1

Ваш код кажется прекрасным, убедитесь, что указанный вами ключ действительно существует в массиве, или такой ключ имеет значение в вашем массиве, например:

$array = array(4 => 'Hello There');
print_r(array_keys($array));
// or better
print_r($array);

Вывод:

Array
(
    [0] => 4
)

Сейчас:

$key = 4;
$value = $array[$key];
print $value;

Вывод:

Hello There

Ответ 2

$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

Он должен работать так, как вы планировали.

$array = array('value-0', 'value-1', 'value-2', 'value-3', 'value-4', 'value-5' /* … */);
$key = 4;
$value = $array[$key];
echo $value; // value-4

Но, возможно, нет элемента с ключом 4. Если вы хотите получить элемент fiveth независимо от того, какой ключ он имеет, вы можете использовать array_slice:

$value = array_slice($array, 4, 1);