为了账号安全,请及时绑定邮箱和手机立即绑定

php数组结构问题

php数组结构问题

PHP
UYOU 2019-03-18 18:08:26
$arr = [ 'date'=>[], 'num' =>[] ]; //开始日期,结束日期 $startDate = '2017-07-25'; $stopDate = '2017-08-08'; //根据开始日期,和结束日期 往$arr里插入数据,得到结果 array(5) { ["num"]=> array(15) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) [5]=> int(0) [6]=> int(0) [7]=> int(0) [8]=> int(0) [9]=> int(0) [10]=> int(0) [11]=> int(0) [12]=> int(0) [13]=> int(0) [14]=> int(0) } ["date"]=> array(15) { [0]=> string(5) "07-25" [1]=> string(5) "07-26" [2]=> string(5) "07-27" [3]=> string(5) "07-28" [4]=> string(5) "07-29" [5]=> string(5) "07-30" [6]=> string(5) "07-31" [7]=> string(5) "08-01" [8]=> string(5) "08-02" [9]=> string(5) "08-03" [10]=> string(5) "08-04" [11]=> string(5) "08-05" [12]=> string(5) "08-06" [13]=> string(5) "08-07" [14]=> string(5) "08-08" } } 怎么做到呢? 描述的不够清楚吗? 就是给一个开始的日期和一个结束的日期,根据这个日期往一个数组里面插入数据. 譬如开始时间是2017-07-11; 结束时间是2017-08-11; date数组里面就是[0]=>2017-07-11 [1]=>2017-07-12 .... [?]=>2017-08-11; 就这样.
查看完整描述

4 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

主要是php内置的日期类的应用

$startDate = new DateTime('2017-07-11');//起始日期
$endDate = new DateTime('2017-08-11');//结束日期
$interval = new DateInterval('P1D');//间隔1天
$perionds = new DatePeriod($startDate, $interval, $endDate);//日期段
foreach ($perionds as $date) {//按照间隔时间来遍历日期段
    echo $date->format("Y-m-d"), PHP_EOL;
}
查看完整回答
反对 回复 2019-03-18
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

伪代码

$datestart = new DateTime($startdate);
$datestop = new DateTime($stopdate);
$oneday = DateInterval::createFromDateString('1 day');

$d = new DateTime($datestart);
while ($d < $datestop) {
    $arr['date'][] = $d;
    $arr['num'][] = ...;
    $d += $oneday;
}
查看完整回答
反对 回复 2019-03-18
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

这个数据结构很糟糕啊,不如改一下:

$arr = [
    [
        "date"=>$date,
        "num"=>$num
    ]
];
查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 362 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信