【问题标题】:generate array from php while loop从php while循环生成数组
【发布时间】:2012-02-24 16:47:25
【问题描述】:

我想运行一个 while(或任何)循环以将一小段日期作为数组输出

$start = $day = strtotime("-1 day");
$end = strtotime('+6 day');
while($day < $end)
{
    echo  date('d-M-Y', $day) .'<br />';
    $day = strtotime("+1 day", $day) ;
}

这可以很好地打印,但我想将它保存为一个数组(并将其插入到 mysql 数据库中)。 是的!我不知道我在做什么。

【问题讨论】:

    标签: php arrays loops while-loop


    【解决方案1】:

    要创建一个数组,您需要首先在循环外对其进行初始化(因为变量作用域)

    $start = $day = strtotime("-1 day");
    $end = strtotime('+6 day');
    $dates = array(); //added
    while($day < $end)
    {
        $dates[] = date('d-M-Y', $day); // modified
        $day = strtotime("+1 day", $day) ;
    }
    echo "<pre>";
    var_dump($dates);
    echo "</pre>";
    

    然后您可以使用foreachwhile 使用您的日期

    foreach 方法:

    foreach($dates as $date){
         echo $date."<br>";
    }
    

    同时接近:

    $max =  count($dates);
    $i = 0;
    while($i < $max){
        echo $dates[$i]."<br>";
    }
    

    【讨论】:

    • 这些笔记和选项都很有帮助。
    【解决方案2】:
    $arr = Array();
    while(...) {
       $arr[] = "next element";
       ...
    }
    

    [] 向数组添加一个新元素,就像 push() 一样,但没有调用函数的开销。

    【讨论】:

      【解决方案3】:

      简单的方法就是:

      $start = $day = strtotime("-1 day");
      $end = strtotime('+6 day');
      $arr = array();
      while($day < $end)
      {
          $arr[] = date('d-M-Y', $day);
          $day = strtotime("+1 day", $day) ;
      }
      
      // Do stuff with $arr
      

      $arr[] = $var 是 PHP 中附加到数组的语法。 php中的数组没有固定的大小,因此可以很容易地追加。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-15
        • 1970-01-01
        • 2012-02-21
        • 1970-01-01
        • 2011-10-08
        • 1970-01-01
        • 2018-02-09
        • 2011-10-30
        相关资源
        最近更新 更多