2

好的,所以我有一个以三个值命名的数组:

$tutorials = array('introduction', 'get_started', 'basics')

我也有一个链接,例如:

mysite.com/?tutorials=get_started

所以上面的链接似乎是 $tutorials 的第一个值,但是如果我希望我的锚的 href 像下一个值一样呢?

<a href="?tutorials=basics">Next</a>

这有什么捷径吗?因为我的数组不仅是 3,而且是 20,我不想一个一个地编辑它们。

我在这里要做的是下一个和上一个链接。请帮忙。

谢谢!

4

3 回答 3

1

获取数组中当前项的索引,加 1 得到下面教程的索引。

不要忘记检查您是否已经在阵列的最新项目上。

<?php

$tutorials = array('introduction', 'get_started', 'basics');

$index = array_search($_GET['tutorials'], $tutorials);

if ($index === FALSE) {
    echo 'Current tutorial not found';
} else if ($index < count($tutorials) - 1) {
    echo '<a href="?tutorials=' . $tutorials[$index+1] . '">Next</a>';
} else {
    echo 'You are already on the latest tutorial available';
}

手动的

于 2012-05-14T12:18:11.823 回答
1

像这样的东西应该工作:

<?php

   $value = $_GET['tutorials']; // get the current

   // find it's position in the array
   $key = array_search( $value, $tutorials );

   if( $key !== false ) {
      if( $key > 0 ) // make sure previous doesn't try to search below 0
          $prev_link = '?tutorials=' . $tutorials[$key-1];

      if( $key < count( $tutorials ) ) // Make sure we dont go beyond the end of the array
          $next_link = '?tutorials=' . $tutorials[$key+1];
   } else {
      // Some logic to handle an invalid key (not in the array)
   }

?>
于 2012-05-14T12:21:25.890 回答
0

使用array_search()获取密钥并将密钥加/减一以获取下一个/上一个链接:

$key = array_search($_GET['tutorials'], $tutorials);
于 2012-05-14T12:21:27.107 回答