php时循环动态会话变量



使用while语句创建动态$_SESSION变量,以从数据库打印日期。只需要 TuesdayFriday即可打印。

通过date()strtotime()的工作日来实现这一目标:

$d = 0;//create dynamic numbers
while($mydate = mysqli_fetch_array($myweekdatesQ)){$d++;
//get weekday of date
$weekday =date('l', strtotime($mydate['event_date']));
if($weekday ==='Tuesday'){
$t = 't_'.$d;
echo $_SESSION[$t] = $mydate['event_date'];
}
if($weekday ==='Friday'){
$f = 'f_'.$d;
echo $_SESSION[$f] = $mydate['event_date'];
}
}

效果很好,但是打印时很小的问题:

$_SESSION[t1];
$_SESSION[f2];
$_SESSION[t3];
$_SESSION[f4];
$_SESSION[t5];
$_SESSION[f6];
$_SESSION[t7];
$_SESSION[f8];

但是,可变 $d永远不会小于1,而最终结果应为:

$_SESSION[t1];
$_SESSION[t2];
$_SESSION[t3];
$_SESSION[t4];
$_SESSION[f1];
$_SESSION[f2];
$_SESSION[f3];
$_SESSION[f4];

如何使此工作?

做两个动态数字:

$d = 0;//create dynamic numbers for $t
$x = 0;//create dynamic numbers for $f
while($mydate = mysqli_fetch_array($myweekdatesQ)) {
    //get weekday of date
    $weekday =date('l', strtotime($mydate['event_date']));
    if($weekday ==='Tuesday') {
        $d++;
        $t = 't_'.$d;
        echo $_SESSION[$t] = $mydate['event_date'];
    }
    if($weekday ==='Friday') {
        $x++;
        $f = 'f_'.$x;
        echo $_SESSION[$f] = $mydate['event_date'];
    }
}

最新更新