2014-11-22 90 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)。

相關問題