PHP检查平局投票,赢家数量可变

PHP检查平局投票,赢家数量可变,php,arrays,tie,Php,Arrays,Tie,我进行了一次选举,每个类别的获胜者数量不一。(一个类别可以有3名优胜者、1名优胜者、2名优胜者等) 目前我显示的结果如下: foreach($newarray as $key => $value){ echo $key . $value . “<br>”; } 我需要做的是,如果两个值基于预先确定的数字是相同的,那么它会发出一些回声。因此,如果预定的数字是1,它将显示: Barack Obama 100 tie Mitt Ro

我进行了一次选举,每个类别的获胜者数量不一。(一个类别可以有3名优胜者、1名优胜者、2名优胜者等)

目前我显示的结果如下:

foreach($newarray as $key => $value){

                echo $key . $value . “<br>”;
}
我需要做的是,如果两个值基于预先确定的数字是相同的,那么它会发出一些回声。因此,如果预定的数字是1,它将显示:

    Barack Obama 100 tie
    Mitt Romney 100 tie
    John Smith 94
    Jane Smith 85
如果预先确定的数字是2,它将显示这一点,因为第二个和第三个值不相同:

    Barack Obama 100 winner
    Mitt Romney 100 winner
    John Smith 94
    Jane Smith 85
谢谢您的时间。

$max=max($array);
$max = max($array);
$tie = count(array_keys($array,$max)) > $predeterminedNumber;
foreach($newarray as $key => $value){
     echo $key . $value . ($value==$max ? ($tie ? ' tie' :' winner') : ''). '<br>';
}
$tie=count(数组_键($array,$max))>$predeterminedNumber; foreach($newarray作为$key=>$value){ 回显$key.$value.($value==$max?($tie?'tie':'winner'):“”)。
; }
尽管如果你需要,情况会变得更复杂,但3名获胜者的分数并不一定相同:

$predefinedNumber = whatever;
arsort($array);

//first $predefinedNumber are either winners or tied.
$winners = array_slice($array,0,$predefinedNumber,true);

//the next entry determines whether we have ties
$next = array_slice($array,$predefinedNumber,1,true);

//active tie on entries with this value
$nextvalue = reset($next);

//the above 2 statements would be equivalent to (take your pick):
//$values = array_values($array);
//$nextvalue = $values[$predefinedNumber];


foreach($array as $key => $value){
   echo $key.' '.$value;
   if($value == $nextvalue){
     echo ' tie';
   } else if(isset($winners[$key])){
     echo ' winner';
   }
   echo '<br>';
}
$predefinedNumber=无论什么;
arsort($数组);
//第一个$predefinedNumber是赢家或平手。
$winners=array\u slice($array,0,$predefinedNumber,true);
//下一项决定我们是否有联系
$next=array\u slice($array,$predefinedNumber,1,true);
//具有此值的活动绑定条目
$nextvalue=重置($next);
//上述两种说法相当于(随便选):
//$values=array\u值($array);
//$nextvalue=$values[$predefinedNumber];
foreach($key=>$value的数组){
回显$key.'.$value;
如果($value==$nextvalue){
回音“领带”;
}else if(isset($winners[$key])){
呼应“赢家”;
}
回声“
”; }
在阵列中循环两次。首先计算获胜分数的平局数,并将其与数字进行比较。然后进行打印循环,将单词
tie
winner
添加到winners中。哈哈。接近-这是在教育领域,但不是家庭作业
$predefinedNumber = whatever;
arsort($array);

//first $predefinedNumber are either winners or tied.
$winners = array_slice($array,0,$predefinedNumber,true);

//the next entry determines whether we have ties
$next = array_slice($array,$predefinedNumber,1,true);

//active tie on entries with this value
$nextvalue = reset($next);

//the above 2 statements would be equivalent to (take your pick):
//$values = array_values($array);
//$nextvalue = $values[$predefinedNumber];


foreach($array as $key => $value){
   echo $key.' '.$value;
   if($value == $nextvalue){
     echo ' tie';
   } else if(isset($winners[$key])){
     echo ' winner';
   }
   echo '<br>';
}