我正在使用以下内容来发现3个值中的最大整数。
<?php
$a = 100;
$b = 200;
$c = -300;
$max = max($a,$b,$c);
foreach( array('a','b','c') as $v) {
if ($$v == $max) {
echo "\$$v is $max and therefore the largest";
break;
}
}
?>
这与输出完美配合: $ b为200,因此最大
但是,我现在还希望输出3中的2个最小整数。
因此,除了显示最大的1之外,它还会输出另外2个。
有人能告诉我如何实现这个目标吗?
非常感谢任何指示。
答案 0 :(得分:2)
答案 1 :(得分:1)
说明马特答案:
$list = array(2, 3, 1);
sort($list);
echo "Largest element : ".$list[count($list)-1]."\n";
echo "Two smallest elements :";
for($i=0; $i<2; $i++) {
echo $list[$i]." ";
}
答案 2 :(得分:1)
$nums = array(100,200,-300);
sort($nums);
$twoSmallest = array_slice($sorted,0,2);
$largest = array_slice($sorted,-1,1);
答案 3 :(得分:1)
我同意其余的“排序!”人群。这是一个完整的示例,其中保留了所涉及变量的名称,因此结果与示例中的结果类似:
function var_cmp($_a, $_b) {
global $$_a, $$_b;
return $$_b - $$_a;
}
$a = 100;
$b = 200;
$c = -300;
$result = array('a', 'b', 'c');
usort($result, 'var_cmp');
printf('$%s is %d and largest, followed by $%s = %d and $%s = %d',
$result[0], ${$result[0]},
$result[1], ${$result[1]},
$result[2], ${$result[2]});