我相信这是简单的,我只是未能正确地表达它为谷歌。希望我能在这里说得很清楚,有人能给我指明正确的方向!
我使用php和chart.js来绘制关于mma战斗机的统计数据,我想要显示出多少次胜利(或输球或ko,等等),他们每年都有的。
我已经能够创建一个数组来显示每个损失的年份(注意,在一年中发生了多次损失)
例如:
$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 )`
我已经能够计算出每年有多少损失发生在这样的情况下:
array_count_values(array_reverse ($loss_years)));
其中产出:
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) }
然而,我希望能够与他们的职业生涯中的每一年进行交叉参照。
因此,如果他们的职业生涯代表如下:
$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:
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 )
这有意义吗?
有没有什么更简单的方法可以让我找不到呢?
发布于 2020-08-22 08:02:40
用一个$career_span
循环遍历foreach
数组,并检查$loss_years
数组中每个职业年的损失数(在应用array_count_values
之后)。
您可以使用PHP三值运算符检查$loss_years
中是否有与职业年相匹配的数组键。如果是这样的话,再加上当年的亏损数字。如果没有,则加零。
$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;
}
https://stackoverflow.com/questions/63532791
复制相似问题