Created
October 9, 2014 17:18
-
-
Save JingwenTian/97beb4cda95e6c1883c1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//模拟一个订单数组 | |
$arr = array( | |
0 => array( | |
"o_id"=>"1", | |
"name"=>"田景文", | |
"tel"=>"18677216692", | |
"order_date"=>"1412146800" //10-1 | |
), | |
1 => array( | |
"o_id"=>"2", | |
"name"=>"田景文2", | |
"tel"=>"18677216692", | |
"order_date"=>"1412146800" //10-1 | |
), | |
2 => array( | |
"o_id"=>"3", | |
"name"=>"田景文3", | |
"tel"=>"18677216692", | |
"order_date"=>"1412319600" //10-3 | |
), | |
3 => array( | |
"o_id"=>"4", | |
"name"=>"田景文4", | |
"tel"=>"18677216692", | |
"order_date"=>"1412492400" //10-5 | |
), | |
4 => array( | |
"o_id"=>"5", | |
"name"=>"田景文5", | |
"tel"=>"18677216692", | |
"order_date"=>"1412492400" //10-5 | |
), | |
5 => array( | |
"o_id"=>"6", | |
"name"=>"田景文6", | |
"tel"=>"18677216692", | |
"order_date"=>"1412751600" //10-8 | |
), | |
6 => array( | |
"o_id"=>"7", | |
"name"=>"田景文7", | |
"tel"=>"18677216692", | |
"order_date"=>"1412924400" //10-10 | |
) | |
); | |
//获取时间数组的函数 | |
function getDateArr ( $start, $end ) | |
{ | |
$date = array(); | |
$s = abs((strtotime(date('Y-m-d',$start))-strtotime("xxxx-xx-xx"))/86400); | |
$e = abs((strtotime(date('Y-m-d',$end))-strtotime("xxxx-xx-xx"))/86400); | |
$num = $e - $s;//活动总天数 | |
for($i = 0;$i<=$num;$i++){ | |
$date[] = date('Y-m-d',$start+86400*$i); | |
} | |
return $date; | |
} | |
$start = 1412146800;//开始时间2014-10-1 | |
$end = 1412838000;//结束时间2014-10-9 | |
$date = getDateArr ( $start, $end );//输出10/1-10/9的日期数组 | |
$newArr = array();//定义一个新数组,用于存储结果数据 | |
$existDate = array();//定义一个存储存在数据的日期的数组 | |
$emptyDate = array();//定义一个存储空数据的日期的数组 | |
//定义一套空值模板(没有在日期范围内的) | |
$emptyTemplate = array( | |
"o_id"=>"0", | |
"name"=>"0", | |
"tel"=>"0", | |
"order_date"=>"0" | |
); | |
//循环日期 | |
foreach($date as $key=>$value){ | |
//按照期日去循环数据 | |
foreach($arr as $k => $v){ | |
if(date('Y-m-d',$arr[$k]['order_date']) == $date[$key]){ | |
$newArr[$date[$key]][] = $arr[$k]; | |
$existDate[] = $date[$key];//如果有数据则记录下这个日期 | |
} | |
} | |
} | |
$emptyDate = array_diff($date,array_unique($existDate));//差集得到没有数据的日期 | |
//给没有日期的数组加上默认的模板 | |
foreach($emptyDate as $key => $value){ | |
$newArr[$emptyDate[$key]] = $emptyTemplate; | |
} | |
//重新对数据按照日期进行整理 | |
echo '<pre>'; | |
print_r($newArr); | |
print_r(array_unique($existDate)); | |
print_r($emptyDate); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment