我有类似于以下数组的数组。但是有超过2000个主要项目。
[0] => Array
(
[0] => 1134
[1] => 2014
[2] => type1
)
[1] => Array
(
[0] => 1133
[1] => 2014
[2] => type1
)
[2] => Array
(
[0] => 1132
[1] => 2014
[2] => type2
)
[3] => Array
(
[0] => 1131
[1] => 2014
[2] => type2
)
[4] => Array
(
[0] => 1130
[1] => 2013
[2] => type1
)
我需要的
我想得到以下输出(所有按年份计算的类型)。
计数1990年type1 = 3项 计数1990年类型2 = 65项 计数1991年type1 = 5项 计数1991年type2 = 12项 ............ ............ ............ ............ 2017年类型1 = 5项 2017年类型2 = 10项
创建一个其他数组,用于存储每年的计数,如下所示:
Array(year => Array(type1 => count, type2 =>count), ...)
然后循环你的数组,并计数:
$tab = array(
0 => Array
(
0 => 1134,
1 => 2014,
2 => 'type1'
),
1 => Array
(
0 => 1133,
1 => 2014,
2 => 'type1'
),
2 => Array
(
0=> 1132,
1 => 2014,
2 => 'type2'
),
3 => Array
(
0 => 1131,
1 => 2014,
2 => 'type2'
),
4 => Array
(
0 => 1130,
1 => 2013,
2 => 'type1'
));
$yeartab = array();
foreach($tab as $elt){
$year = $elt[1];
$type = $elt[2];
if(array_key_exists($year, $yeartab)){
if(array_key_exists($type,$yeartab[$year]))
$yeartab[$year][$type]++;
else
$yeartab[$year][$type] = 1;
} else {
$yeartab[$year][$type] = 1;
}
}
print_r($yeartab);
这将输出:
Array (
[2014] => Array ( [type1] => 2 [type2] => 2 )
[2013] => Array ( [type1] => 1 )
)