我想从现在开始将缺少的日期添加到此数组1周。
这是我的一个示例数组;
Array
(
[0] => Array
(
[date] => 2013-11-25
[members] => 2
)
[1] => Array
(
[date] => 2013-11-27
[members] => 1
)
)
这可能有任何日期。我尝试了这样的事情,但我可以逻辑地看到它不起作用,但我无法找到方法。
$date_range = array();
$temp = array();
for ($i=0; $i<7; $i++)
{
$date = date("Y-m-d", strtotime($i." days ago"));
foreach($new_members as $members) {
if(!in_array($date, $members)) {
$temp['date'] = $date;
$temp['members'] = 0;
$new_members[] = array_merge($temp);
}
}
}
答案 0 :(得分:1)
Dainis提供的解决方案对我不起作用,它会弄乱成员和日期。
这是我的解决方案:
<?php
$new_members = array ( array("date"=>"2013-11-25", "members" => 2), array("date"=>"2013-11-27", "members" => 2));
for ($i=0; $i<7; $i++)
{
$date = date("Y-m-d", strtotime($i." days ago"));
$found = false;
foreach($new_members as $members) {
if(array_search($date, $members) !== false) {
$found = true;
}
}
if(!$found) {
$new_members[] = array ("date" => $date, "members" => 0);
}
}
foreach($new_members as $nm) {
var_dump($nm);
}
?>
答案 1 :(得分:0)
而不是:
$temp['date'] = $date;
$temp['members'] = 0;
$new_members[] = array_merge($temp);
就这样做:
$new_members[$i]['date'] = $date;
if ( !$new_members[$i]['members'] ) $new_members[$i]['members'] = 0;
之后,您可以在['date']
值之后对其进行排序,并获得漂亮的数组。