在PHP中填写日期对象数组中缺少的元素

Jus*_*tin 1 php date

我有一个arrayobjectsphp其中的样子:

Array
(
    [0] => Array
      (
        [day] => 1/23/2013
        [executions] => 1
      )

    [1] => Array
      (
        [day] => 1/24/2013
        [executions] => 1
      )

    [2] => Array
      (
        [day] => 1/27/2013
        [executions] => 10
      )

    [3] => Array
      (
        [day] => 1/29/2013
        [executions] => 1
      )

    [4] => Array
      (
        [day] => 1/30/2013
        [executions] => 3
      )

    [5] => Array
      (
        [day] => 2/8/2013
        [executions] => 1
      )

   [6] => Array
      (
        [day] => 2/11/2013
        [executions] => 3
      )

)
Run Code Online (Sandbox Code Playgroud)

我正在构建这个数据的图表,基本上它代表了过去30天.问题是我没有得到丢失的日子,即当查询没有执行时.我期待填补与PHP,简单的设置了这些失踪的日子day,以正确的日期,并executions0.因此,结果数组应包含30个元素,假设start is 1/18/2013和end is today 2/17/2013.

想知道在PHP中实现这一目标的最佳算法吗?

nic*_*ass 5

就像是:

$start = '1/18/2013';
$end = '2/17/2013';

$range = new DatePeriod(
  DateTime::createFromFormat('m/d/Y', $start),
  new DateInterval('P1D'),
  DateTime::createFromFormat('m/d/Y', $end));

$filler = array();

foreach($range as $date)
  $filler[] = array(
    'day'      => $date->format('m/d/Y'),
    'execution' => 0,
  };

$array += $filler;
Run Code Online (Sandbox Code Playgroud)