如果我有这个数组:
$arr = array(1, 2, 5, 7);
条目的当前值为5
,如何获取2
的上一个值和下一个值7
?
如果我使用以下代码,它会起作用:
$i = 0;
foreach($result as $check){
if($check == $this->item->id){
$next = $result[$i+1];
$prev = $result[$i-1];
}
$i++;
}
我一开始认为$arr[$i + 1]
会给我6个
答案 0 :(得分:3)
像这样:
current($arr); //Use current to see the current element of your array! So in your example 5
next($arr); //6
prev($arr); //5
答案 1 :(得分:0)
答案 2 :(得分:0)
听起来你也在问为什么$arr[$i + 1]
和$arr[$i - 1]
返回下一个和前一个元素,而不是从索引引用的数组元素的值中加或减的 $ I 即可。
请记住括号括起数组索引。如果括号内有表达式,则表达式的结果为索引;如果表达式包含变量,那么没有理由将该变量单独作为索引处理,并且在检索数组元素的值之后将应用任何其他操作。
因此,如果 $ i 为2,那么$arr[$i + 1]
会为您提供 index 等于$i + 1
的元素的值,即索引为3的元素,即7
。 $arr[$i] + 1
会给你6
(检索索引等于$i
的元素,并将其值加1)。