我有7个链接,我需要在每个页面或页面视图中显示一个链接,而不重复以前视图中的链接。
链接需要以随机方式显示,并且如果用户访问7页(每页一页),则必须向用户显示所有7个链接,如果用户访问超过7页,则cicle将再次开始
我希望问题很清楚。 谢谢,抱歉我的英语 丹尼尔
答案 0 :(得分:3)
您应该将以前访问过的链接存储在会话或数据库中。你可以简单地改变链接,然后迭代。然后检查它是否曾被访问过 - 并继续前进,直到找到一个。如果你找不到(完成迭代),你可以假设已经访问了所有7个,你可以重置会话/数据库。
小代码示例(注意:伪代码)。
$aLinks = array(1, 2, .., ..);
shuffle($aLinks);
$sLinkToShow = null;
foreach($aLinks as $aLink) {
if (seenBefore()) continue;
$sLinkToShow = $aLink['link'];
}
if (is_null($sLinktoShow)) {
// seen all
}
echo $sLinkToShow;
答案 1 :(得分:0)
将随机链接存储在会话中并逐个使用:
$links = array('a', 'b', 'c', …);
if (empty($_SESSION['links'])) {
// first time visit, populate random order in session
$_SESSION['links'] = array_keys($links);
shuffle($_SESSION['links']);
}
// pop first link
$link = array_shift($_SESSION['links']);
// cycle array; or don't, to create a different order next time
$_SESSION['links'][] = $link;
// output link
echo $links[$link];