循环时从php生成数组

时间:2012-02-02 00:19:19

标签: php arrays loops while-loop

我想运行一个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数据库)。 是!我不知道我在做什么。

3 个答案:

答案 0 :(得分:8)

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

$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>";
}

答案 1 :(得分:3)

$arr = Array();
while(...) {
   $arr[] = "next element";
   ...
}

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

答案 2 :(得分:1)

简单的方法就是:

$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中的数组没有固定大小,因此可以轻松附加。