2012-04-01 73 views
-3

有時候我有數組列表中4,5,1,2有時候1,2,4,5。我如何重新排列[list] ASC中的值,所以我將在所有[list]字段中有1,2,4,5和1,2,3等?謝謝。php array重新排序鍵值

Array 
(
    [0] => DibiRow Object 
     (
      [storage:ArrayObject:private] => Array 
       (
        [d] => 2012-04-03 08:30:00 
        [list] => 4,5,1,2 
       ) 

     ) 

    [1] => DibiRow Object 
     (
      [storage:ArrayObject:private] => Array 
       (
        [d] => 2012-04-03 09:00:00 
        [list] => 1,2,4,5 
       ) 

     ) 

    [2] => DibiRow Object 
     (
      [storage:ArrayObject:private] => Array 
       (
        [d] => 2012-04-03 09:00:00 
        [list] => 3,1,2     ) 

     ) 
    [3] => DibiRow Object 
     (
      [storage:ArrayObject:private] => Array 
       (
        [d] => 2012-04-03 09:00:00 
        [list] => 1,2,3     ) 

     ) 
+3

到目前爲止您嘗試過什麼?簡單的'explode()','sort()'和implode()'。 – 2012-04-01 23:24:29

+0

太棒了!就是這樣!我做到了這一點:for($ i = 0; $ i peter 2012-04-03 12:33:02

回答

0

嘗試先閱讀關於bubble sorting的內容。然後google它,找到一些examples並嘗試自己做。如果您仍然有問題,請再次回來並指出您嘗試了什麼,以及您認爲您的方法有問題。

0

謝謝。我發現這個解決方案(不知道這是否是有效的大數據):

for ($i = 0; $i < count($all) ; $i++) { 
    $num = $all[$i][list]; 
    $resort = explode(",", $num); 
    sort($resort); 
    $resort = implode(",", $resort); 
    $all[$i][list] = $resort; 
} 
0

如果這是基於以前的查詢我寫的,你可以通過簡單地添加訂購到GROUP_CONCAT的結果GROUP_CONCAT() -

GROUP_CONCAT(DISTINCT user_bookings.user_id ORDER BY user_bookings.user_id)