php 多个数字比较差值的问题。
$a = "156";
$b = "126";
$c = "151";
$d = "154";
$e = "123";
/*以上的值都互相比较一下,差值大于20的都显示出来 【结果:$a > $b 30 这样的输出】*/
以上需求最简单的办法是??
$a = "156";
$b = "126";
$c = "151";
$d = "154";
$e = "123";
/*以上的值都互相比较一下,差值大于20的都显示出来 【结果:$a > $b 30 这样的输出】*/
以上需求最简单的办法是??
$b = "126";
$c = "151";
$d = "154";
$e = "123";
/*以上的值都互相比较一下,差值大于20的都显示出来 【结果:$a > $b 30 这样的输出】*/$t = array($a,$b,$c,$d,$e);
for($i=0; $i<count($t);$i++)
for($j=0;$j<count($t); $j++)
if(abs($t[$i]-$t[$j]) > 20) printf("%d vs %d %d\n", $t[$i], $t[$j], $t[$i]-$t[$j]);
156 vs 126 30
156 vs 123 33
126 vs 156 -30
126 vs 151 -25
126 vs 154 -28
151 vs 126 25
151 vs 123 28
154 vs 126 28
154 vs 123 31
123 vs 156 -33
123 vs 151 -28
123 vs 154 -31
$a = "156";
$b = "126";
$c = "151";
$d = "154";
$e = "123";$arr = array();
$arr['$a']=$a;
$arr['$b']=$b;
$arr['$c']=$c;
$arr['$d']=$d;
$arr['$e']=$e;
foreach ($arr as $k => $value) {
foreach ($arr as $k2 => $value2) {
if ($value - $value2 > 20) {
echo $k . ' > ' . $k2 . ' ' . ($value - $value2) . '<br/>';
}
}
}//$a > $b 30
//$a > $e 33
//$c > $b 25
//$c > $e 28
//$d > $b 28
//$d > $e 31
$b = "126";
$c = "151";
$d = "154";
$e = "123";
$arr1 = $arr2 = array(
'$a'=>$a,
'$b'=>$b,
'$c'=>$c,
'$d'=>$d,
'$e'=>$e
);
foreach ($arr1 as $k1 => $value1) {
foreach ($arr2 as $k2 => $value2) {
if($k1 == $k2) continue;
if ($value1 - $value2 > 20) {
echo $k1 . ' > ' . $k2 . ' ' . ($value1 - $value2) . '<br/>';
}
if ($value1 - $value2 < -20) {
echo $k2 . ' > ' . $k1 . ' ' . ($value2 - $value1) . '<br/>';
}
unset($arr2[$k1]);
}
}
这样效率能高点