2012-05-14 228 views
2

好了,所以我有三個值命名的數組:

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

我還具有例如鏈接:

mysite.com/?tutorials=get_started 

所以上面的鏈接似乎是$ tutorials的第一個值,但是如果我想讓我的錨點的href像下一個值一樣呢?

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

這是否有任何捷徑?因爲我的數組不僅僅只有3個而是20個,我不想逐一編輯它們。

我在這裏要做的是一個Next和Previous鏈接。請幫忙。

謝謝!

+0

$ _GET是一個數組 –

回答

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) 
    } 

?> 
+0

耶!謝謝!我只是不知道array_search。新手在這裏。 –

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'; 
} 

Manual

+0

好吧,我現在明白了。但我認爲你有一個小錯誤。 –

0

使用array_search()拿到鑰匙,並添加/減去一個關鍵,以獲得一個/上一個鏈接:

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