PHP - 比较多个值并按特定顺序形成它们

时间:2011-01-14 12:38:24

标签: php compare

所以,我有一个数组:

$n=array('175','102','99','10','250','302');

我希望将每个值相互比较并回显四个(或五个)状态(1 - 最低,2 - 低,3 - 中,4 - 最高)。我如何用PHP做到这一点?

我知道一种方式,我只能回应三种状态(低,中,高):

$status=array();
$min_n=min($n);
$max_n=max($n);

for($i=0;$i<count($n);$i++){
    if($n[$i]==$min_n){
        $status[$i]='1';
    }elseif($n[$i]==$max_n){
        $status[$i]='3';
    }else{
        $status[$i]='2';
    }

    echo $n[$i].' status - '.$status[$i].'<br />';
}
回声将是:

175 status - 2
102 status - 2
99 status - 2
10 status - 1
250 status - 2
302 status - 3

但是如果我需要四种(或五种)状态?

1 个答案:

答案 0 :(得分:0)

您想如何定义区域?一种方法是取最小值和最大值之间的差值,然后除以范围数。

$n=array('175','102','99','10','250','302');

$num_ranges = 5;

$status=array();
$min_n=min($n);
$max_n=max($n);

$step = ($max_n + 1 - $min_n)  / $ranges;

for($i=0;$i<count($n);$i++){

    $status[$i] = ceil(($n[$i] + 1 - $min_n ) / $step);
    echo $n[$i].' status - '.$status[$i]."\n";
}