-1

我确信有一个更简单的解决方案,我正在寻找

这是一些基本描述我在做什么的代码:

$array = array('1.4','2.7','4.1','5.9'); 
$score = '4.4';
foreach($array as $value) {
    if($score>$value){
        $x = $value;
    }
}
foreach($array as $value) {
    if($x==$value){
        echo $value."<br>";
        echo $score."<-- <br>";
    } else {
        echo $value."<br>";
    }
}

将显示为:

1.4
2.7
4.1
4.4<--
5.9

我要做的是按顺序打印带有得分值的数组值。

4

2 回答 2

4

为什么不将数组更改为实际数值然后对其进行排序?

$array = array(1.4, 2.7, 4.1, 5.9);
$score = 4.4;

$array[] = $score;
sort($array);

或者,如果您需要使用字符串:

$array = array('1.4', '2.7', '4.1', '5.9');
$score = '4.4';
$array[] = $score;
sort($array, SORT_NUMERIC);
于 2012-12-10T16:50:12.890 回答
0

对于排序,最简单的方法可能是使用sort()方法(docs)。

$x每次都在通过第一个循环进行覆盖。...它的编写方式,当你完成第一个循环时,$x最后一个值小于$score. (您是否确定了分界线?)

使用该方法排序后sort(),您的第二个循环应该按您的意愿工作。有更严格的方法来进行打印(例如,你可以implode()),但你所拥有的应该可以工作。

于 2012-12-10T16:55:41.977 回答