Php 从foreach循环合并多个数组

Php 从foreach循环合并多个数组,php,mysql,arrays,foreach,merge,Php,Mysql,Arrays,Foreach,Merge,我试图从数据库中获取开始和结束日期,生成开始和结束之间的范围日期,创建一个数组,以便在datepicker中禁用它们。问题是我得到了多个阵列。如何将它们合并到一个数组中 这就是我所拥有的: $datestartend = mysql_query("SELECT * FROM booking"); while ($result = mysql_fetch_array($datestartend)){ $begin = new DateTime($result['tdate']); $end

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

这就是我所拥有的:

$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\u 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);

你有没有试过
array\u push($range,$date->format('d-m-Y');
?谢谢@JohnPangilinan,但我还是得到了同样的结果