我有一些来自循环的php数组,它们都带有相同的名字。现在我想合并它们,但它似乎不起作用......
这是我的循环:
while($row = mysql_fetch_row($sql1)){
$startzeit=strtotime($row[2]);
$endzeit=strtotime($row[3]);
$startzeit_format = date("Y-m-d",$startzeit);
$endzeit_format = date("Y-m-d",$endzeit);
$datearray[] = createDateRangeArray($startzeit_format,$endzeit_format);
}
这应该是合并代码:
for($i = 0; $i<count($datearray); $i++)
{
$datesarray = array_merge($datearray[$i]);
}
无论如何,手动合并工作正常:
$datesarray = array_merge( $datearray[0], $datearray[1], $datearray[2], $datearray[3]);
这个导致所需的输出。但是我想自动化它,因为单个数组来自数据库,我不会添加$ datearray [4],$ datearray [5]等等,每次mySQL中都有一个新条目。
print_r($datearray)
的结果:
Array (
[0] => Array ( [0] => 2014-03-08 )
[1] => Array ( [0] => 2013-09-15 )
[2] => Array ( [0] => 2013-09-21 )
[3] => Array ( [0] => 2013-10-03
[1] => 2013-10-04
[2] => 2013-10-05
[3] => 2013-10-06 )
)
答案 0 :(得分:1)
你可能正在寻找的是扁平阵列:
$datesarray = call_user_func_array('array_merge', $datearray);
这与您手动合并数组项的方式相同。
您也可以通过一个简单的循环在循环内执行此操作:
$datesarray = array();
while ($row = mysql_fetch_row($sql1)) {
// ...
foreach (createDateRangeArray($startzeit_format,$endzeit_format) as $item) {
$datesarray[] = $item;
}
}
答案 1 :(得分:0)
您正在将单个数组合并为空。
$newArray = array_merge($array, $array)
合并这两个数组但你正在做
$array = array_merge($datearray[$i]);
在效果中,您正在从数组的一个键创建一个数组。