php 数组补零,php怎么将序列化数组内的日期 填补不存在的日期

5d5dbff2f071b2893420323189204d1d.png

凤凰求蛊

$data = array(

'date' => array(

'2017.08.24',

'2017.08.26',

'2017.08.28',

'2017.08.30',

'2017.08.31'

),

'data' => array(

1,

2,

3,

4,

5

)

);

$len = count($data['date']);

$oneDaySecond = 86400;

$newData = array();

for ($i = 1; $i < $len; $i++) {

$previous = strtotime(str_replace('.', '-', $data['date'][($i - 1)]));

$current = strtotime(str_replace('.', '-', $data['date'][($i)]));

$diff = $current - $previous;

if (!in_array($data['date'][($i - 1)], $newData['date'], true)) {

$newData['date'][] = $data['date'][($i - 1)];

$newData['data'][] = $data['data'][($i - 1)];

}

if ($diff > $oneDaySecond) {

for ($m = $previous + $oneDaySecond; $m < $current; $m += $oneDaySecond) {

$newData['date'][] = date('Y.m.d', $m);

$newData['data'][] = 0;

}

}

$newData['date'][] = $data['date'][$i];

$newData['data'][] = $data['data'][$i];

}

print_r($newData);

result

Array

(

[date] => Array

(

[0] => 2017.08.24

[1] => 2017.08.25

[2] => 2017.08.26

[3] => 2017.08.27

[4] => 2017.08.28

[5] => 2017.08.29

[6] => 2017.08.30

[7] => 2017.08.31

)

[data] => Array

(

[0] => 1

[1] => 0

[2] => 2

[3] => 0

[4] => 3

[5] => 0

[6] => 4

[7] => 5

)

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值