每次刷新时按顺序从数组中选择值

时间:2017-09-15 15:56:04

标签: php arrays

我试图用PHP创建一个简单的重复计数器。 让我们说我有一个这样的数组:

$letters = array("a","b","c");

我希望以正常顺序显示此数组,如:

  • 第一次刷新:a
  • 第二次刷新:b
  • 第3次刷新:c
  • 第4次刷新:a
  • 第5次刷新:b
  • 第6次刷新:c
  • 就是这样......

我怎样才能实现呢?感谢。

3 个答案:

答案 0 :(得分:2)

这可以使用$ _SESSION变量来完成,方法是将变量保存在会话中,并为每个数组索引提供一组逻辑。例如:

   session_start();

if(!isset($_SESSION['refresh'])){
    $_SESSION['refresh'] = $letters[0];
}
else{

    switch ($_SESSION['refresh']) {
        case $letters[0]:
            $_SESSION['refresh'] = $letters[1];
            break;
        case $letters[1]:
            $_SESSION['refresh'] = $letters[2];
            break;
       case $letters[2]:
            $_SESSION['refresh'] = $letters[0];
            break;
    }

 }

答案 1 :(得分:0)

这只是获得那个的逻辑。

首先,您必须使网址看起来像这样

http://yoursite/letter?now[]=0

,您的代码将如下所示

<?php

// http://yoursite/letter?now[]=0

$now = $_GET['now'];

$urlNow = null;
for ($i=0; $i < count($now); $i++) { 
    if($i !== 0){
        $urlNow += '&now[]=' . $now;        
    } else {
        $urlNow = 'now[]=' . $now
    }
}

//You can get your url now

我希望你能理解我的逻辑。

答案 2 :(得分:0)

  1. 开始会话

    session_start();
    
  2. 如果未设置

    ,请设置计数器变量
    $_SESSION['counter'] = $_SESSION['counter'] ?? 0;
    
  3. 定义您要迭代的数组

    $letters = ["a","b","c"];
    
  4. 输出并递增计数器(3是字母数组的长度)

    echo $letters[$_SESSION['counter']++ % 3];