我有以下类型的数据(这是一个简化版本):
//date //int
2014-01-29 4
2014-02-04 5
2014-02-07 2
2014-02-16 1
我希望每月存储一次,所以按照这些方式:
2014-01 -> 4
2014-02 -> 8
目前,我能想到的唯一方法是使用字符串和整数的二维数组:
$date_data[0][0] = '2014-01';
$date_data[0][1] = 4;
$date_data[1][0] = '2014-02';
$date_data[1][1] = 8;
存储此类型数据的正确方法是什么,以便我可以按日期顺序遍历它。
答案 0 :(得分:3)
您可以使用字符串作为数组索引。
$date_data['2014-01'] = 4;
$date_data['2014-02'] = 8;
然后您可以按日期访问数组。
答案 1 :(得分:0)
你可以做一个关联数组 -
$date_data(
0 => array('date'=>'2014-01', 'count'=> 4),
1 => array('date'=>'2014-02', 'count'=> 8)
);
答案 2 :(得分:0)
这将循环显示日期及其值,并按年份和月份对其进行分组并增加总值。如有必要,您可以在之后对其进行排序。
<?php
$dates = array(
'2014-01-29' => 4,
'2014-02-04' => 5,
'2014-02-07' => 2,
'2014-02-16' => 1,
);
$values = array();
foreach ($dates as $date => $value) {
$dt = new DateTime($date);
$key = sprintf('%s-%s', $dt->format('Y'), $dt->format('m'));
if (!isset($values[$key])) {
$values[$key] = 0;
}
$values[$key] += $value;
}
print_r($values);
// Array ( [2014-01] => 4 [2014-02] => 8 )