我有类似于以下数组的数组。但是,除了 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年计数类型1 = 3项目
计数1990年类型2 = 65项目
1991年的数量类型1 = 5项目
计数1991年类型2 = 12项目
............
............
............
............
2017年类型1 = 5项目
2017年类型2 = 10项
答案 0 :(得分:1)
创建另一个数组,用于存储每年的计数,如下所示:
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 )
)