从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>";

然后您可以使用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[] = $varphp 中附加到数组的语法。 php中的数组没有固定的大小,因此可以很容易地追加。

【讨论】:

以上是关于从php while循环生成数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在单页中使用 php 从 while 循环中生成多个读取更多按钮?

PHP试图在while循环中向数组添加值

PHP从循环生成Array()?

PHP——数组中的each(),list()和while循环遍历数组

使用 while 循环回显 PHP 数组

foreach 循环内的 while 循环仅返回 1 行