我有一个由php回应的五个数字的列表,如下所示: -
<div id="items">
<span class="number" id="one"><?php echo $one; //result = 1?> </span>
<span class="number" id="two"><?php echo $two; //result = 2?> </span>
<span class="number" id="three"><?php echo $three; //result = 3?> </span>
<span class="number" id="four"><?php echo $four; //result = 4?> </span>
<span class="number" id="five"><?php echo $five; //result = 5?> </span>
<div id="result"></div>
</div>
我希望得到<div id="result"></div>
div
例如,在我的问题中,我希望我的结果是 12
我有一个简单的方法来做到这一点。可能用javascript甚至PHP?
答案 0 :(得分:3)
<?php
$arr = array($one,$two,$three,$four,$five);
arsort($arr); // sort descending, highest first
$tre = array_slice($arr, 0, 3); // first three
$sum = array_sum($tre); // summed up
?>
<div id="result"><?php echo $sum; ?></div>
答案 1 :(得分:1)
将它们转储到一个数组中。对数组进行排序。加上前三名。
var nums = [<? echo $one ?>,<? echo $two ?>,<? echo $three ?>,<? echo $four ?>,<? echo $five ?>]
nums.sort()
var resultIs = nums[2]+nums[3]+nums[4];
document.getElementById("result").innerHTML = resultIs;
对阵列进行排序是必要的,因为你只想要最好的3个。这样你就可以按任何顺序发送它们,你就可以轻松找到你想要的那些。
答案 2 :(得分:1)
这就是我要做的事情:
$nums = [$one, $two, $three, $four, $five];
sort($nums);
$last_three = array_slice($nums, -3);
$result = array_sum($last_three);
echo $result;
答案 3 :(得分:0)
仅限Javascript的解决方案,没有PHP
var sum = Array.prototype.map.call(
document.querySelectorAll("span.number"),
function(element) {
return parseInt(element.innerHTML, 10);
}
).sort(function(a, b) {
return b - a
}).slice(0,3).reduce(function(sum, newValue) {
return sum + newValue
}, 0);
document.querySelector("div#result").innerHTML = sum;