从php while循环生成数组
Posted
技术标签:
【中文标题】从php while循环生成数组【英文标题】:generate array from php while loop 【发布时间】: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 数据库中)。 是的!我不知道我在做什么。
【问题讨论】:
【参考方案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中的数组没有固定的大小,因此可以很容易地追加。
【讨论】:
以上是关于从php while循环生成数组的主要内容,如果未能解决你的问题,请参考以下文章
如何在单页中使用 php 从 while 循环中生成多个读取更多按钮?