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);