2

我有以下数组,它是根据数据库查询的结果加载的

   while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {   
            $response->rows[$i]['user_id']=$row['user_id'];
            # Row Data 
            $response->rows[$i]['cell']=array(
                                    $row['user_id'],
                                    $row['aff_code'],
                                    $row['lname'],
                                    $row['fname'],
                                    $new_comm,
                                    $mth_earn,
                                    $status_label);
           $i++;
        }

如何按 $new_comm,(数值)对该数组进行排序?

$new_comm 和 $mth_earn 是根据对数据库的第二次调用计算得出的。

谢谢

4

1 回答 1

1

usort()

以下需要 php 5.3,否则将匿名函数替换为通过create_function()创建的函数

usort($response->rows, function($a, $b){
    return $b['cell'][4] - $a['cell'][4];
});

或巧妙实施的排序选项

usort($arr, function($a, $b) {
    $sortDescending = false;
    return (1 - 2*$sortDescending) * ($b['cell'][4] - $a['cell'][4]);
});
于 2012-04-19T14:22:31.513 回答