我有两个具有相同键的多维关联数组。我需要根据另一个数组的需求计算/求和一个数组中的特定值。
我尝试了嵌套的foreach循环,但无法获取请求的结果。我已经尽我所能搜索了互联网,但没有成功。
这是我的代码无法按要求工作:
foreach ($b as $key => $value) {
foreach ($a as $skey => $svalue) {
if ($key == $skey) {
foreach ($svalue[Season] as $ssvalue) {
if ($value[Appearance] == $ssvalue) {
$c[$key]['SeasonAppearances'][] = count($value[Appearance]);
}
}
}
}
}
第一个数组(提取)/ $ a
$a = Array (
[Paul] => Array (
[Season] => Array (
[0] => 2014
[1] => 2015
[2] => 2016
)
)
[John] => Array (
[Season] => Array (
[0] => 2012
)
)
)
第二数组(提取)/ $ b
$b = Array (
[Paul] => Array (
[Appearance] => Array (
[0] => 2014
[1] => 2014
[2] => 2014
[3] => 2014
[4] => 2014
[5] => 2014
[6] => 2014
[7] => 2014
[8] => 2015
[9] => 2015
[10] => 2015
)
)
[John] => Array (
[Appearance] => Array (
[0] => 2012
[1] => 2012
[2] => 2012
[3] => 2012
)
)
)
请求的结果数组/ $ c
$c = Array (
[Paul] => Array (
[SeasonCounts] => Array (
[0] => 8
[1] => 3
[2] => 0
)
)
[John] => Array (
[SeasonCounts] => Array (
[0] => 4
)
)
)
我想计算$ a中每个季节每个人与每个人匹配的出现次数,并创建结果数组。请注意,保罗在2016年没有出场。
这应该像您想要的那样计数
$c = array();
$helper = array();
foreach ($b as $key => $value) {
$c[$key] = array();
$c[$key]["SeasonCount"] = array();
$helper[$key] = array();
foreach ($value["Appearance"] as $key1 => $value1) {
$position = array_search($value1, $helper[$key]);
if (false !== $position) {
$c[$key]["SeasonCount"][$position]++;
} else {
$helper[$key][] = $value1;
$c[$key]["SeasonCount"][] = 1;
}
}}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句