簡體   English   中英

我如何比較多維數組中的值

[英]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()-檢查當前值是否大於先前的最大值

如果您想進一步了解PHP: foreachobjectsarraysgoogle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM