我相信你會喜歡它;)。顯示與循環陣列的下一個和前一個鍵
我需要一個建立瀏覽網頁頁面的導航功能(其中一些頁面可以分開收集,它應該來回循環);它應該將鏈接(如數字)輸出到給定頁面的「下一頁」和「上一頁」頁面。
將接收數組和輸入鍵的函數應該吐出數組給定鍵的值以及「next」和「previous」值的值。 但是,如果給定的鍵是數組中的第一個鍵,它應該將數組的最後一個鍵輸出爲「previous」。同樣,如果它接收到最後一個鍵,它應該輸出第一個鍵作爲「下一個」。
這是我到目前爲止有:
$pages = array(5, 1, 6, 8);
sort($pages);
$selected = 1; // that's second key (value:5, next:6, previous:1)
// $selected = 3; // that's forth and a last key (value:8, should return next:1, previous:6)
$selected = key($pages)+$selected;
while ($pointer = current($pages)) {
if ($selected == key($pages)) {
echo $pointer." - current <br>";
}
elseif($selected+1 == key($pages)){
echo $pointer." - next <br>";
}
elseif($selected-1 == key($pages)){
echo $pointer." - previous <br>";
}
else
echo $pointer."<br>";
next($pages);
}
這應該實際工作(但沒有「週期awarness」) - 你可以在http://writecodeonline.com/php/快速檢查 - 如果說明迷惑你,這個代碼的輸出是相當自我解釋... 我相信這很容易,但我沒有想法,現在是凌晨3點。當然,我需要最簡單的解決方案,所以它可能比我選擇的更簡單一些。
你是什麼意思與「循環」?關於輸出 - 5和1之後是5還是5之前?那麼到數組中的順序是什麼意思呢? – divaka
數組可以通過未排序,但用PHP排序()解決,所以不用擔心。循環意味着鏈接「下一個」和「前一個」應該循環工作,像這樣(從這個排序數組中的示例):1,5,6,8,[1,5,6,8],1,5, 6,等等(所以如果你在8,下一個是1,如果你在1以前是8)。我相信它在力學中被稱爲「環形計數器」。 –
但是我還不清楚,這是什麼目的?以及這是如何與報廢頁面的書籍連接?如果第3頁和第4頁報廢,那麼我會從2直到5?如果你給我一個真實的例子或一個簡單的場景,它會容易得多。 – divaka