每重新加载10个页面1次检索一个元素


Retrieve one element 1 time per 10 page reload

我有一个包含10个元素的数组。$arr = range(0, 9);我想检索一个元素,每10页加载一次。我怎么能这么做?

使用会话变量和一些模块化算法,您应该可以完成这项工作

<?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而不是会话。

代码测试和批准

试试这个:

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

这将在$arr数组的范围内选择一个元素,每次重新加载

要真正使它每x次发生一次,服务器必须知道它最后一次检索元素是什么时候,以及此后发生了多少次页面刷新。您应该使用数据库来保留这些信息,并在每次页面加载时引用数据库来知道是否检索元素。

祝你好运!

这段代码将启动一个用户会话,并记录已执行的请求数量,然后它将重新生成数组索引。

然而,如果你需要慢慢地耗尽这个列表,你需要跟踪你分配给用户的索引,或者递增地执行这个返回。

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