首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算一个数组中数字在另一个数组中发生的次数。

计算一个数组中数字在另一个数组中发生的次数。
EN

Stack Overflow用户
提问于 2020-08-22 05:13:34
回答 1查看 39关注 0票数 0

我相信这是简单的,我只是未能正确地表达它为谷歌。希望我能在这里说得很清楚,有人能给我指明正确的方向!

我使用php和chart.js来绘制关于mma战斗机的统计数据,我想要显示出多少次胜利(或输球或ko,等等),他们每年都有

我已经能够创建一个数组来显示每个损失的年份(注意,在一年中发生了多次损失)

例如:

代码语言:javascript
运行
复制
$loss_years = Array ( [0] => 2019 [1] => 2016 [2] => 2014 [3] => 2013 [4] => 2012 [5] => 2011 [6] => `2011 [7] => 2010 [8] => 2009 [9] => 2009 [10] => 2006 [11] => 2005 )`

我已经能够计算出每年有多少损失发生在这样的情况下:

代码语言:javascript
运行
复制
array_count_values(array_reverse ($loss_years)));

其中产出:

代码语言:javascript
运行
复制
array(10) { ["2005 "]=> int(1) ["2006 "]=> int(1) ["2009 "]=> int(2) ["2010 "]=> int(1) ["2011 "]=> int(2) ["2012 "]=> int(1) ["2013 "]=> int(1) ["2014 "]=> int(1) ["2016 "]=> int(1) ["2019 "]=> int(1) }

然而,我希望能够与他们的职业生涯中的每一年进行交叉参照。

因此,如果他们的职业生涯代表如下:

代码语言:javascript
运行
复制
$career_span = Array ( [0] => 2004 [1] => 2005 [2] => 2006 [3] => 2007 [4] => 2008 [5] => 2009 [6] => 2010 [7] => 2011 [8] => 2012 [9] => 2013 [10] => 2014 [11] => 2015 [12] => 2016 [13] => 2017 [14] => 2018 [15] => 2019 [16] => 2020 )

然后,我想将它与$loss_years交叉引用,并输出类似于以下内容的第三个数组$losses_per_year:

代码语言:javascript
运行
复制
Array ( [0] => 0 [1] => 1 [2] => 1 [3] => 0 [4] => 0 [5] => 2 [6] => 1 [7] => 2 [8] => 1 [9] => 1 [10] => 1 [11] => 0 [12] => 1 [13] => 0 [14] => 0 [15] => 1 [16] => 0 )

这有意义吗?

有没有什么更简单的方法可以让我找不到呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-22 08:02:40

用一个$career_span循环遍历foreach数组,并检查$loss_years数组中每个职业年的损失数(在应用array_count_values之后)。

您可以使用PHP三值运算符检查$loss_years中是否有与职业年相匹配的数组键。如果是这样的话,再加上当年的亏损数字。如果没有,则加零。

代码语言:javascript
运行
复制
$loss_years = array_count_values( $loss_years );
foreach ( $career_span as $career_year ) {
    $losses_per_year[] = array_key_exists( $career_year, $loss_years ) ? $loss_years[$career_year] : 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63532791

复制
相关文章

相似问题

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