我有一个密钥存储在一个变量中:
$key = 4;
我试图像这样获得相关值:
$value = $array[$key];
但失败了。帮助
答案 0 :(得分:22)
您的代码似乎没问题,请确保您指定的密钥确实存在于数组中,或者此类密钥在您的数组中具有值,例如:
$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
答案 1 :(得分:5)
$value = ( array_key_exists($key, $array) && !empty($array[$key]) )
? $array[$key]
: 'non-existant or empty value key';
答案 2 :(得分:2)
正如其他人所说,它可能会失败,因为数组中不存在请求的密钥。我在这里有一个辅助函数,它接受数组,可疑密钥,以及在密钥不存在的情况下的默认返回。
protected function _getArrayValue($array, $key, $default = null)
{
if (isset($array[$key])) return $array[$key];
return $default;
}
希望它有所帮助。
答案 3 :(得分:0)
它应该按照你想要的方式工作。
$array = array('value-0', 'value-1', 'value-2', 'value-3', 'value-4', 'value-5' /* … */);
$key = 4;
$value = $array[$key];
echo $value; // value-4
但也许没有关键4
的元素。如果您想获得第五项,无论它有什么关键,您都可以使用array_slice
:
$value = array_slice($array, 4, 1);