首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组-按两个索引获取计数组

数组-按两个索引获取计数组
EN

Stack Overflow用户
提问于 2018-03-06 07:59:02
回答 1查看 35关注 0票数 0

我的数组类似于下面的数组。但是有超过2000的主要项目.

  • 内部数组的2是"type1“或"type2”。没有任何其他价值。
  • 一个内部数组是几年前的。可以是1990年、1991年.、2017年。明年是2018年.
  • 内部数组的是一个ID,它与这个问题无关。
代码语言:javascript
运行
复制
    [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项

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-06 08:21:48

创建另一个数组,该数组将存储每年的计数,如下所示:

代码语言:javascript
运行
复制
Array(year => Array(type1 => count, type2 =>count), ...)

然后循环您的数组,并计数:

代码语言:javascript
运行
复制
$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);

这将产生以下结果:

代码语言:javascript
运行
复制
Array ( 
 [2014] => Array ( [type1] => 2 [type2] => 2 ) 
 [2013] => Array ( [type1] => 1 ) 
) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49125939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档