在PHP中按最后一列的值对表进行排序,这是一个计算变量

时间:2017-08-03 22:15:08

标签: php sorting variables html-table

这是我的代码:

<?

$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++;}?>

所以,$ per是一个计算值,我想用这个数字对表格进行排序。我可以帮忙做这件事吗?

2 个答案:

答案 0 :(得分: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>
<?
}

答案 1 :(得分:-1)

在输出表之前,您需要使用enter image description here的某些内容对$ data数组进行排序。查看PHP sorting functions函数。它可以帮助你。