2012-07-05 91 views
0

我想要使用此功能,圖像導航:圖像導航(鏈接

function array_key_relative($array, $current_key, $offset = 1, $strict = true) { 
    // create key map 
    $keys = array_keys($array); 
    // find current key 
    $current_key_index = array_search($current_key, $keys, $strict); 
    // return desired offset, if in array, or false if not 
    if(isset($keys[$current_key_index + $offset])) { 
    return $keys[$current_key_index + $offset]; 
    } 
    return false; 
} 

我想用這種方式:

<?php 
$images = array(); 
foreach ($images as $key => $image) 
$prev_key = $this->array_key_relative($images, $key, -1); 
$next_key = $this->array_key_relative($images, $key, 1); 
?> 


<a href="<?php echo "image?id=".$images[$prev_key]->id; ?>">Prev</a> 
<a href="<?php echo "image?id=".$images[$next_key]->id; ?>">Next</a> 

的問題是當我按下一個或上一步鏈接其工作只有一次,所以例如,如果當前的鍵是1,如果我按下一個將去2,但一旦我在2頁導航停止工作(不去3,4 ,5等)。 有人指出我指向正確的方向? 謝謝。

回答

0

您next_key不包括先看看一個+符號 -

$ next_key = $這個 - > array_key_relative($圖像,$鍵+1)。

但我會用

$next = $images++; 
$prev = $images--; 


$next_key = $this->array_key_relative($images, $key, $next); 
$prev_key = $this->array_key_relative($images, $key, $prev);