我有以下代码保存将数据保存为下一年的数组,$ info从sql中读取:
$saved = []
for ($x = 0; $x <= 365; $x++) {
$d=strtotime("+$x days");
$cd = date("Y-m-d", $d);
foreach($info as $i){
if($i['date'] == $cd){
$saved[$cd] = $i;
}
}
}
它可以工作,但是当我有许多相同日期的数据时它会覆盖它,我怎样才能区分它而不会破坏
的结构答案 0 :(得分:1)
试试这个:
$saved = []
for ($x = 0; $x <= 365; $x++) {
$d=strtotime("+$x days");
$cd = date("Y-m-d", $d);
foreach($info as $i){
if($i['date'] == $cd){
$saved[$cd][] = $i;
}
}
}
正在推送$ saved [$ cd]。那样$ saved ['2016-10-03']如果只有一个,你会得到1个结果,如果有N个结果,你会得到N个数组。
答案 1 :(得分:0)
试试这个
$saved = array();
$dates = array();
// separate array, make array for dates
for ($x = 0; $x <= 365; $x++) {
$d=strtotime("+$x days");
$cd = date("Y-m-d", $d);
$dates[$cd] = $cd;
}
foreach($info as $i){
if(isset($dates[$i['date'])) {
$saved[$i['date']][] = $i;
}
}