2017-08-03 7 views
-2

これは私が持っているコードです:$ごとに、そうテーブルのソート、


<? 

$i=0; 

foreach ($data as $key => $value) 
{ 

?> 
    <tr> 
     <td><?=number_format($value[budget],0)?></td> 
     <td><?=number_format($value[htd],0)?></td> 
     <td><?=number_format($value[etc],0)?></td> 
     <td><? 

     $per=number_format(($value[htd]+$value[etc])/$value[budget],2); 

     echo $per; 

     ?></td> 
    </tr> 
<?$i++;}?> 

は、計算された値であり、私はその番号でテーブルを並べ替えたいと思います。これをやるために何か助けてもらえますか?

+0

これはあなたが求めているものとは関係ありませんが、配列キーを引用する必要があります。 '$ value ['budget']'などでなければなりません。 –

+0

このデータはどこから来ますか?データベーステーブル?それはソーティングと計算を行うのに適切な場所です。 – mickmackusa

+0

ありがとう@ Don'tPanic。 – Lakito

答えて

1

あなたはそれを持っていたら、あなたはだけなので、データを使用することができます。

//add what you want first 
foreach($data as $key => $value){ 
    $data[$key]['per'] = ($value['htd'] + $value['etc'])/$value['budget']; 
} 

//then sort 
usort($data, function($a, $b){ 
    return $a['per'] == $b['per'] ? 0 : ($a['per'] > $b['per'] ? 1 : -1); 
}); 

//then display the data 
foreach($data as $key => $value){ 
?> 
    <tr> 
    <td><? echo number_format($value['budget'],0); ?></td> 
    <td><? echo number_format($value['htd'],0); ?></td> 
    <td><? echo number_format($value['etc'],0); ?></td> 
    <td><? echo number_format($value['per'],2); ?></td> 
    </tr> 
<? 
} 
+0

@ Don'tPanicあなたは正しいです。それを私が直した。気づいてくれてありがとう。 –

+1

問題ありません:)もう1つ注意してほしいのは、PHP 7を使用することができれば、組み合わせた比較演算子はそれをもっと綺麗にします。 ( '$ a ['per'] <=> $ b ['per']') –

-1

出力テーブルの前にあなたがPHP sorting functionsの一部を使用して$ data配列をソートする必要があります。 usortの機能を見てください。それはあなたを助けることができます。

関連する問題