我的数组类似于下面的数组。但是有超过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年type2计数= 65项
1991年type1 =5项
1991年type2 = 12项
.
.
.
.
2017年type1 =5项
2017年type2 = 10项
发布于 2018-03-06 08:21:48
创建另一个数组,该数组将存储每年的计数,如下所示:
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 )
)
https://stackoverflow.com/questions/49125939
复制相似问题