例: 配列に含まれる日付: 2014-01-01、2014-01-02、2014-01-22、2014-02-22、2014-02-26、2014-03-03、2014-03 - 25,2014-03-28
達成するには: 次のように月の最小の日付を取り出します:
2014-01-01
2014-02-22
2014-03-03
を計算します。月の日数: (例: 1 月には 3 つの日付があります (2014-01-01、2014-01-02、2014-01-22))
1 月-》3
2 月-》2
March -》3
これら 2 つの関数は別々に記述されます。英雄たちを教えてください、ありがとう! ! ! ! ! ! ! ! !
$ar = array( '2014-01-01', '2014-01-02', '2014-01-22', '2014-02-22', '2014-02-26', '2014-03-03', '2014-03-25', '2014-03-28',);$r1 = $r2 = array();foreach($ar as $d) { list($y, $m, $d) = explode('-', $d); if(! isset($r1[$y.$m])) $r1[$y.$m] = 32; $r1[$y.$m] = min($r1[$y.$m], $d); if(! isset($r2[$y.$m])) $r2[$y.$m] = 0; $r2[$y.$m]++;}print_r($r1);print_r($r2);
$arr = array('2014-01-01','2014-01-02','2014-01-22','2014-02-22','2014-02-26','2014-03-03','2014-03-25','2014-03-28');sort($arr);$out = array();foreach ($arr as $key => $value) { $mouth = date('n',strtotime($value)); if(!in_array($mouth, array_keys($out))) $out[$mouth] = $value;}var_dump($out);
$arr = array('2014-01-01','2014-01-02','2014-01-22','2014-02-22','2014-02-26','2014-03-03','2014-03-25','2014-03-28');$newArr = array_map('cout', $arr);function cout($n){ return date('n',strtotime($n));}print_r ( array_count_values ( $newArr ));
を検討したい場合は、異なる年でも同じ 2014-02 や 2013-02 などの月次状況は、個別にカウントする必要があります。 key の値は Y-m 形式である必要があります。