php - 合并 foreach 循环中的多个数组

标签 php mysql arrays foreach merge

我正在尝试从数据库获取开始和结束日期,生成开始和结束之间的日期范围,创建一个数组,以便我可以在日期选择器中禁用它们。问题是我得到了多个数组。如何将它们合并到一个数组中?

这就是我所拥有的:

$datestartend = mysql_query("SELECT * FROM booking");
 while ($result = mysql_fetch_array($datestartend)){


$begin = new DateTime($result['tdate']);
$end = new DateTime($result['ldate']);

$interval = new DateInterval('P1D'); // 1 Day
$dateRange = new DatePeriod($begin, $interval, $end);

 $range = [];
foreach ($dateRange as $date) {
    $range[] = $date->format('d-m-Y');
  }

echo json_encode($range);


 }

这就是我得到的:

["11-11-2016","12-11-2016","13-11-2016","14-11-2016"]["11-02-2016","12-02-2016","13-02-2016","14-02-2016","15-02-2016","16-02-2016"]["22-08-2016","23-08-2016","24-08-2016","25-08-2016","26-08-2016","27-08-2016","28-08-2016","29-08-2016"]["21-10-2016","22-10-2016","23-10-2016","24-10-2016","25-10-2016","26-10-2016","27-10-2016","28-10-2016","29-10-2016","30-10-2016"]

这就是我想要的:

  ["11-11-2016","12-11-2016","13-11-2016","14-11-2016","11-02-2016","12-02-2016","13-02-2016","14-02-2016","15-02-2016","16-02-2016","22-08-2016","23-08-2016","24-08-2016","25-08-2016","26-08-2016","27-08-2016","28-08-2016","29-08-2016","21-10-2016","22-10-2016","23-10-2016","24-10-2016","25-10-2016","26-10-2016","27-10-2016","28-10-2016","29-10-2016","30-10-2016"]

最佳答案

我认为这不会给您想要的结果,因为对于每个循环 $range = []; 将导致一个空数组。 然后用数据填充数组并回显数据 echo json_encode($range);

在下一个循环中,前一个循环将再次发生,这就是您看到多个数组符号的原因。

当您将 $range = []; 数组移出 while 循环并将此语句 echo json_encode($range); 移至紧随其后时,可能会有所帮助while 循环。

例如:

$datestartend = mysql_query("SELECT * FROM booking");
$range = [];
while ($result = mysql_fetch_array($datestartend)){
    $begin = new DateTime($result['tdate']);
    $end = new DateTime($result['ldate']);

    $interval = new DateInterval('P1D'); // 1 Day
    $dateRange = new DatePeriod($begin, $interval, $end);

    foreach ($dateRange as $date) {
        $range[] = $date->format('d-m-Y');
    }
}

echo json_encode($range);

关于php - 合并 foreach 循环中的多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34503461/

相关文章:

python - 如何选择满足条件的行

PHP PDO 未在我的网页上显示任何数据

php - 如何 MySQL SELECT 并按列排序并按不同表中的另一个键排序

arrays - 将矩阵的坐标转换为相应数组的坐标

php - 转换 SQL 的日期格式

mysql - 奇怪的数据库模式 - 是多对多吗?

javascript - Node.js 中数组和对象的混淆

php - Preg_match_all - </h2> 标记后的第 2 个段落

javascript - 如何定位在 php 中没有任何 ID 或标记的 <span> 元素的 innerHTML?

php - 启用 Xdebug 后,PHP 运行速度异常缓慢