2015-09-14 30 views
4

我有一個包含10個元素的數組。 $ arr = range(0,9); 我想每10頁重新加載一次檢索一個元素。 何我能做到這一點嗎?每10頁重新載入一次檢索一個元素

+0

這是你一直在尋找什麼? – aldrin27

+0

我正在閱讀的內容:第一頁加載選取一個隨機項目並顯示它,爲接下來的9頁加載顯示相同的項目。對於第11頁的加載,選擇另一個隨機項目並顯示它...如果需要,您需要將ID存儲在用戶會話中以跟蹤它以及自從選擇隨機項目以來查看了多少頁面。 – Scuzzy

回答

1

隨着會話變量和一個位模運算的,你應該得到的工作,如果你想保持你的櫃檯在瀏覽器關閉後進行

<?php 

session_start(); 

$array = range(0, 9); // this could be any array 
$repeat = 10; 

if(!isset($_SESSION['counter'])) $_SESSION['counter'] = 0; 
if(!isset($_SESSION['subcounter'])) $_SESSION['subcounter'] = 0; 

echo $array[$_SESSION['subcounter'] % sizeof($array)]; 

if($_SESSION['counter'] % $repeat == 0) 
    $_SESSION['subcounter']++; 

$_SESSION['counter']++; 

?> 

使用cookie,而不是會議。

代碼測試和批准

+0

哦!是。我可以使用cookie。這就是我正在尋找的東西。謝謝 –

0

試試這個:

$arr = range(0,9); 
$random = array_rand($arr, 1); 

echo $random; 

這會挑你的$arr陣列爲每個重載的範圍之內的一個元素。

0

爲了讓您真正每x次發生一次,服務器必須知道上次檢索元素的時間,以及從那以後發生了多少次頁面刷新。您應該使用數據庫來保留此信息,並在每個頁面加載時引用數據庫以知道是否檢索元素。

祝你好運!

0

此代碼將啓動用戶會話,並保留多少請求已經完成計數,它就會重新生成數組索引。

但是,如果您需要慢慢地耗盡這個列表,您需要跟蹤您分配給用戶的索引,或者遞增執行此返回。

session_start(); 

$arr = array('Item A','Item B','Item C','Item D','Item E','Item F','Item A','Item H','Item I','Item J'); 

if(isset($_SESSION['counter'],$_SESSION['showthisindex']) === false or $_SESSION['counter'] >= 10) 
{ 
    $_SESSION['counter'] = 1; 
    $_SESSION['showthisindex'] = array_rand($arr); 
} 
else 
{ 
    $_SESSION['counter']++; 
} 

echo $arr[ $_SESSION['showthisindex'] ]; 
相關問題