基于数组值对多维数组进行iSorting

时间:2012-04-19 13:59:09

标签: php arrays sorting

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

   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是从第二次调用数据库计算出来的。

谢谢

1 个答案:

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