0

echoの値でソートしたい$match_count。最大数が一番上にあるはずです。

while($row = mysql_fetch_array($result)) {
    $num_kanal = count(explode(' ', $row['kanaler']));

    $pr_kanal = $row['pris'] / $num_kanal;
    $pr_kanal = number_format((float)$pr_kanal, 2, '.', '');

    $farve = '#6a6a6a;';

    if ($_POST['kanaler']) {

        $getkan = implode($_POST['kanaler'], ' ');
        $kan = $row['kanaler'];
        $match_count = count(TheMatch($kan, $getkan));
        $match = ' Match = '.$match_count;
        }

        // I WANT THIS ECHO TO BE SORT BY THE VALUE OF '$match_count' HIGEST NR IN TOP //
        echo'<tr>
            <td style="background-color:'.$farve.'"><p>
            ' . $row['udbyder'] . ' '.$_POST['kanaler'].'
            </p></td>
    </tr>';
    }
}
4

2 に答える 2

1

配列を反復処理しながら出力/値をバッファリングし、並べ替えてから印刷する必要があります。このようなもの:

$results = array();
while($row = ...) {
    ...
    $results[] = array($match_count, '<tr><td style="background-color:...</tr>');
}

uasort($results, my_comp);

foreach($results as $result)
    echo $result[1];

これにより、配列がソートされ、このソート関数に基づいて出力されます。

function my_comp($left, $right) {
    return $left[0] > $right[0]; // to be honest I'm not 100% sure right now whether you'd need < or > for the right sorting order
}
于 2012-12-05T21:33:04.493 に答える
0

array_multisort も使用できます。

<?php 
array_multisort($match_count, SORT_DESC, $array_values_to_print);

foreach ($match_count as $result) {
    echo '<tr><td style="background-color:...</tr>';
}
?>

最初の配列はインデックスを決定します。

于 2012-12-05T22:51:39.483 に答える