我有5个变量$ a $ b $ c $ d $ e。这些变量具有数值。我试图比较这些变量,其中每个变量将与其余变量进行比较,如果条件为真,它会回应一些东西。这是我的代码
FXTO.HK
结果在第一个条件下停止,即使它是假的,它应该将它传递给其他条件。
答案 0 :(得分:3)
一些不同的方法:
$a = 1;
$b = 3;
$c = 4;
$d = 5;
$e = 0;
// Make array [a=>1, b=>3...]
$arr = compact('a','b','c','d','e');
// Sort it in descending order with saving keys
arsort($arr);
// Get the 1st key
echo 'I\'m ' . strtoupper(key($arr)); // I'm D
答案 1 :(得分:2)
首先 - 您在($b && $c && $d && $e)
附近有括号,这意味着在$a > ($b && $c && $d && $e)
中,($b && $c && $d && $e)
的结果将首先计算,然后将与$a
进行比较
因此,$a > ($b && $c && $d && $e)
不是
$a
大于$b
且$a
大于$c
等。
的结果
$a
大于($b
和$c
以及$d
和$e
)
$b and $c and $d and $e
的结果是 true 或 false 。
因此,最后您要比较$a > true
或$a > false
。根据{{1}}的值,您可以得到不同的结果。
在一个简单的例子中,如果你想检查一些东西是否比其他东西更重要,你需要写一个像这样的条件:
$a
您可以在其他用户的修道中找到其他更棘手的解决方案。
答案 2 :(得分:0)
您可以迭代五个变量并跟踪具有最高值的变量。
for ($i='a', $x = 0, $max = 'x'; $i <= 'e'; $i++) {
if ($$i > $$max) {
$max = $i;
}
}
$result = "<div>I'm " . strtoupper($max) . "</div>";
答案 3 :(得分:0)
我认为你应该避开android:fillViewport="true"
语句;)这是一个没有它们的解决方案,可以与任意数量的变量一起使用。您可以使用if
作为函数列表的索引,并使程序可扩展。
$key
答案 4 :(得分:0)
试试这个:
$array = ['A'=>$a,'B'=>$b,' C'=>$c,'D'=>$d,'E'=> $e];
$maxs = array_keys($array, max($array));
foreach ($maxs as $maxi )
echo '<div>Im '.$maxi.'</div>."<br>"';
这种方式涵盖了多个最大值的情况。
有关其工作原理的详情,请参阅this answer。