猿问

php数组结构问题

$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; 就这样.

UYOU
浏览 363回答 4
4回答

狐的传说

主要是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; }

潇潇雨雨

伪代码 $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; }

拉风的咖菲猫

这个数据结构很糟糕啊,不如改一下: $arr = [ [ "date"=>$date, "num"=>$num ] ];
随时随地看视频慕课网APP
我要回答