2016-07-13 10 views
0

でグループ化された私はこのようなmultidimesional配列を持っている:一つの値で並べ替え多次元PHP配列が、別の

Array 
(
[0] => Array 
    (
     [ID] => 1 
     [date_start] => 2016-07-30 
     [customerID] => 15 
     [job_type] => service 
    ) 

[1] => Array 
    (
     [ID] => 2 
     [date_start] => 2016-08-10 
     [customerID] => 12 
     [job_type] => service 
    ) 

[2] => Array 
    (
     [ID] => 3 
     [date_start] => 2016-08-20 
     [customerID] => 15 
     [job_type] => service 
    ) 

etc 

私はそれが「DATE_START」の順番で表示されるように、データをソートしたい、しかし保ちます顧客IDをまとめてください。 - 1,2,3

ID:

ので、上記のコードでは、ソートDATE_STARTによってI場合、それはのためにそれらを置きます。

しかし、私は顧客IDをまとめておきたいが、それでもdate_startでソートしたい。したがって、私は順番になりたい:

ID - だから、1,3,2

、本質的に、私はその顧客のための最も早い日付を見つけ、グループに顧客を、それを必要とし、この早いソート日付。

これは可能ですか?

+1

は、データベースからこのですか?あなたは 'ORDER BY'を使用することができます – nerdlyist

+2

[複数のキーで多次元配列をソート]可能な複製(http://stackoverflow.com/questions/3232965/sort-multidimensional-array-by-multiple-keys) – nerdlyist

+0

はい、それはORDER BYは私が見る限り、このように注文することはできません。これは単なる「Order By Date_start、customerID」呼び出しではなく、顧客を一緒に保持しないからです。 –

答えて

2

使用array_multisort

ありがとう:

function orderMultiArray(array $data) 
    { 
     $sort = array(); 

     foreach ($data as $key => $value) { 
      $sort['date_start'][$key] = $value['date_start']; 
      $sort['customerID'][$key] = $value['customerID']; 
     } 

     array_multisort($sort['date_start'], SORT_ASC, $sort['customerID'], SORT_ASC, $data); 

     return $data; 
    } 
+0

ちょうどその機能を試して、それを実行するとID 1,2,3の順番を保ちます。 –

関連する問題