[英]Get the value most common in the array, or show mixed result
我有一個數組,用於存儲測驗的答案。 給出的答案可以是A,B或C,並且有四個問題。
我正在嘗試計算出每個答案給出了多少個答案,以便可以將用戶推到以下屏幕:
我使用以下方法獲取每個實例的計數:
$most = array_count_values($answers[0]);
得到結果:
array(2) {
["a"]=> int(3)
["b"]=> int(1)
}
1)如何獲取具有最高int
值的值? 例如,在上述情況下為“ A”?
2)如果沒有highest
價值,我該如何區分? 例如,在以下情況下:
array(2) {
["a"]=> int(2)
["b"]=> int(2)
}
在這種情況下,我需要答案為“混合”。
您將如何處理? 研究了使用max()
函數后,我發現它沒有用於確定存在兩個可行選項的選項。
我想您想從最高的整數值中檢索索引鍵(a,b或c)。 如果我錯了,請糾正我。
您可以這樣做:
$ar= array(
"a"=> 3,
"b"=> 6,
"c"=> 9
);
$max = array_keys($ar, max($ar));
echo $max[0];
$ max將是一個包含所有具有最高值的鍵的數組。 例如,如果A和B具有相同的值並且是最大值,則可以使用max[0]
和max[1]
訪問這兩個值。 類似地,您可以通過獲取$ max數組的長度( count($max)
)來計算出多少個相等的“獲勝者”
您可以使用arsort函數找到最大值。 它將按照值從高到低的順序對數組進行排序。
要檢查是否存在平局,可以檢查數組元素0 ==數組元素1。
$a = array(
'A' => 1,
'B' => 5,
'C' => 2
);
arsort($a)
$highest = $a[0];
$tie = ($a[0] == $a[1]) ? true : false;
您可以使用current
和end
方法比較值,如下所示
$most = array("a"=>3, "b"=>1);
sort($most);
$min = current($most);
$max = end($most);
if($min == $max){
echo "mixed";
}else{
echo "Highest: ".max($most);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.