我正在制定一个生物指标选举制度,但我在选举结果方面遇到了问题。
执行查询后我得到了这个数组。
Array
(
[paty1] => Array
(
[NA122] => stdClass Object
(
[count] => 2
)
[NA2] => stdClass Object
(
[count] => 0
)
[NA56] => stdClass Object
(
[count] => 1
)
)
[party2] => Array
(
[NA122] => stdClass Object
(
[count] => 0
)
[NA2] => stdClass Object
(
[count] => 0
)
[NA56] => stdClass Object
(
[count] => 0
)
)
)
此数组存储在$data
中,它可以包含无限索引。
现在,如果[Paty1][NA122]
的计数大于[Party2][NA122]
的计数,那么我将在Party1
中声明NA122
获胜,我必须将其与n个索引进行比较。
e.g。还有另一个索引pary3所以首先我将[party1][NA122]
与[party2][NA122]
的计数进行比较,然后与[party3][NA122]
进行比较,获胜者将是计数更大的人。你能帮帮我吗?
提前致谢
答案 0 :(得分:0)
所以你想要获得给定NA#的最大数量的派对。 你可以使用这样的函数:
function maxParty($data, $na) {
$max = null;
foreach($data as $party => $values) {
if(is_null($max)) {
$max = $party;
continue;
} else {
if($values[$na]->count > $data[$max][$na]->count) {
$max = $party;
}
}
}
return $max;
}
然后使用$ data数组和要计算最大聚会的NA#来提供此函数。例如
$winner = maxParty($data, 'NA122');
它将返回获胜方的密钥。即“A方”
答案 1 :(得分:0)
试试这个:
foreach(current($Result) as $Const=>$val){
echo "Winner of Constituency '$Const': ". findWinner($Const,$Result).PHP_EOL;
}
function findWinner($Const, $Result){
$Max = 0;
$Winner = '';
foreach($Result as $Party => $ConstList){
if($ConstList[$Const]->count>$Max){
$Max = $ConstList[$Const]->count;
$Winner = $Party;
}
}
return $Winner;
}
点击此处查看实时代码: https://www.tehplayground.com/x5sPu7JxuexOdwU8
答案 2 :(得分:0)