-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()、2番目のループは意図したとおりに機能するはずです。印刷を行うためのより厳密な方法がありますが(たとえば、できますimplode())、得られたものは機能するはずです。

于 2012-12-10T16:55:41.977 に答える