![](/img/trans.png)
[英]how I can compare and display a certain value in a array multidimensional cakephp
[英]How can i compare values within a multidimensional array
我正在開發生物識別選舉系統,但是我在選舉結果方面面臨問題。
我在執行查詢后得到了這個數組。
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個比較。
例如,還有另一個pary3索引,因此我首先將[ party1][NA122]
計數與[party2][NA122]
,然后與[party3][NA122]
,獲勝者將是計數更大的那個。 你能幫我么??
提前致謝
因此,您想讓給定的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');
它將返回贏家聚會的鑰匙。 即“ party1”
嘗試這個:
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
您的意思是這樣的嗎:
<?php
$data=getData();
$maxValue;
$maxKey;
foreach($data as $key => $paty)
if(!isset($maxValue) || $paty->count>$maxValue){
$maxValue=$paty->count;
$maxKey=$key;
}
echo "$maxValue $maxKey";
function getData(){
$a=array();
for($i=1;$i<100;$i++)
$a["paty$i"]=(object) array("count"=>$i);
return $a;
}
?>
說明:getData返回一個與您描述的數組類似的數組
foreach($ data as $ key => $ paty)-遍歷整個數組
if()-檢查當前值是否大於先前的最大值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.