【问题标题】: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>";
然后您可以使用foreach 或while 使用您的日期
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中的数组没有固定的大小,因此可以很容易地追加。