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 回だけ押すと機能することです。たとえば、現在のキーが 1 の場合、[次へ] を押すと 2 に移動しますが、2 ページに移動すると、ナビゲーションが機能しなくなります (3 に移動しません。 4、5など)。誰かが私を正しい方向に向けることができますか?ありがとうございました。

4

1 に答える 1

0

あなたの next_key には、最初に見たときに + 記号が含まれていません -

$next_key = $this->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);
于 2012-07-12T09:34:14.577 に答える