inarray问题

时间:2016-11-17 14:38:30

标签: php arrays date

所以我正在尝试创建一些能够检查日期并根据今天的日期生成不同变量结果的内容。

这是我目前的代码:

<?php 
    for($i = 0; $i <= 25; $i++) 
    $dates[] = date("d", strtotime( "+$i days"));
    foreach ($dates as $today) {
        if (in_array($today, array('01', '05', '09', '14', '19', '24'), true)) {
            $tweet = "one";
        }
        if (in_array($today, array('02', '06', '10', '15', '20', '25'), true)) {
            $tweet = "two";
        }
        if (in_array($today, array('03', '07', '11', '16', '21'), true)) {
            $tweet = "three";
        }
        if (in_array($today, array('04', '08', '12', '17', '22'), true)) {
            $tweet = "four";
        }
    }
    echo $tweet;
?>

问题是即使日期改变它总是回声“四”,我缺少什么?

1 个答案:

答案 0 :(得分:2)

因为在循环的每次迭代中覆盖$tweet,这意味着只有最后一次迭代实际可用。最后一次迭代将是今天+ 25天,即12月12日。

12导致$tweetfour的分配,因为这是最后一次迭代,这就是循环结束后$tweet等于的内容。