2012-04-19 81 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

相關問題