所以我尝试这样做:
$array = array('first'=>'111', 'second'=>'222', 'third'=>'333');
var_dump(prev($array["second"]));
希望得到111
,但我得到NULL
。为什么?
$array["second"]
返回222
。当我们使用PHP的111
函数时,是否不应该得到prev()
?
如何使用键获取数组的先前值(如果存在)?
答案 0 :(得分:2)
prev
函数期望将数组作为参数,但是您正在传递字符串。
$array["second"]
的值为'222'
答案 1 :(得分:2)
您来自$array["second"]
的当前值不是数组,而prev则将数组作为参数。
您必须移动$array
的内部指针,然后获取先前的值。
$array = array('first'=>'111', 'second'=>'222', 'third'=>'333');
while (key($array) !== "second") next($array);
var_dump(prev($array));
答案 2 :(得分:0)
在这种情况下,您直接指向前一个值,而无需迭代数组。
$array = array('first'=>'111', 'second'=>'222', 'third'=>'333');
$keys = array_flip(array_keys($array));
$values = array_values($array);
var_dump($values[$keys['second']-1]);