我的代码的目标是找到3个最低值,但是,如果其中两个匹配,则需要优先考虑哪一个出现在底部3中。
这是我的阵列:
Array
(
[1] => 50.00
[5] => 59.38
[4] => 62.50
[2] => 62.50
[7] => 66.67
[8] => 68.75
[6] => 80.00
[9] => 91.67
)
优先级为Key,分数为Value。
基于这个例子;密钥2应该在密钥4之上,因为它们都共享相同的值,但是密钥2的优先级更高。
我希望这是有道理的,因为我开始怀疑我的理智,哈哈。
非常感谢, 斯科特。
答案 0 :(得分:2)
稍微重新格式化,然后排序:
$helpArr = array();
foreach ($yourArray as $prio => $score) {
$helpArr[] = array($score, $prio);
}
sort($helpArray);
要将其恢复为您的格式:
$yourArray = array();
foreach ($helpArr as $h) {
$yourArray[$h[0]] = $h[1];
}
答案 1 :(得分:0)
您可以使用sort和arsort功能来满足您的要求。检查以下代码可能会对您有所帮助。
<?php
$arr = array(1=>50.00,5=>59.38,4=>62.50,2=>62.50,7=>66.67,8=>68.75,6=>80.00,9=>91.67);
ksort($arr);
arsort($arr);
print_r($arr);
?>
Out Put:
Array ( [9] => 91.67 [6] => 80 [8] => 68.75 [7] => 66.67 [4] => 62.5 [2] => 62.5 [5] => 59.38 [1] => 50 )
现在,您将在数组底部获得列表3值。