获取前一个数组键的值

时间:2019-02-12 14:32:29

标签: php arrays

所以我尝试这样做:

$array = array('first'=>'111', 'second'=>'222', 'third'=>'333');

var_dump(prev($array["second"]));

希望得到111,但我得到NULL。为什么?

$array["second"]返回222。当我们使用PHP的111函数时,是否不应该得到prev()

如何使用键获取数组的先前值(如果存在)?

3 个答案:

答案 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]);