我正在尝试将此功能用于图像导航:
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>
问题是当我按下Next或Prev链接其工作只有一次,所以例如如果当前键是1如果我按next将转到2但是一旦我在2页上导航停止工作(没有去到3,4,5等)。 Cound有人指向我正确的方向? 谢谢。
答案 0 :(得分:0)
你的next_key在初看时不包含+符号 -
$ next_key = $ this-&gt; array_key_relative($ images,$ key,+ 1);
但我会用
$next = $images++;
$prev = $images--;
$next_key = $this->array_key_relative($images, $key, $next);
$prev_key = $this->array_key_relative($images, $key, $prev);