2012-04-19 84 views
2

我有以下阵列是基于数据库查询iSorting多维阵列基于关闭一个数组值

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

谢谢

+2

大约有一个关于这个的数千个不同的问题。使用搜索并查看右侧的“相关”部分。 – Jon 2012-04-19 14:02:02

+2

我建议在你的sql查询中对它进行排序,所以当你输出到php时 - 它已经被排序。 – Elen 2012-04-19 14:03:52

回答

1

看到usort()

以下需要PHP 5.3,否则一个通过create_function()

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

或用聪明地实现排序选项

提出更换annonymous功能
usort($arr, function($a, $b) { 
    $sortDescending = false; 
    return (1 - 2*$sortDescending) * ($b['cell'][4] - $a['cell'][4]); 
}); 
+0

谢谢克里斯。这回答了我的问题,让我接近我的最终解决方案。我只需要添加选项来颠倒排序顺序,我认为这将通过替换 - 用+ – user1344131 2012-04-19 14:39:16

+1

来翻转排序顺序,它将返回$ a ['cell'] [4] - $ b ['细胞“] [4]; – user1344131 2012-04-19 15:07:32

+0

行得了答案。需要弄清楚usort如何理解发生了什么。 ($ response-> rows,function($ a,$ b){ // $(['cell'] [4]> $ b ['cell'] [ 1; //降序 //返回($ a ['cell'] [4] <$ b ['cell'] [4])?1:-1; //降序 \t \t \t }); – user1344131 2012-04-19 15:30:00

相关问题