2014-11-22 59 views
1

如果我有这样的数组:如何获得下一键和上一个关键的价值的价值在一个阵列

$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

回答

3

您可以使用next();prev();

像这样:

current($arr); //Use current to see the current element of your array! So in your example 5 
next($arr); //6 
prev($arr); //5 
0

数组指针这听起来好像你还问为什么$arr[$i + 1]$arr[$i - 1]返回下一个和以前的内容,而不是添加或从索引中引用数组元素等于值减去$ I

请记住括号包围数组索引。如果括号内有表达式,表达式的结果就是索引;没有理由为什么如果表达式包含一个变量,那么该变量本身将被视为索引,并且在检索数组元素的值之后应用任何其他操作。

所以,如果$ I为2,则$arr[$i + 1]给你其索引等于$i + 1的元素的值,即具有索引3,这是7的元素。 $arr[$i] + 1会给你6(检索索引等于$i的元素,并将其值加1)。

相关问题