2011-07-14 17 views
3

私は3次元配列を持っており、第1次元の配列を第3次元の値でソートしたいと思います。 次のように:3次元のphpソート配列

Array 
(
[0] => Array 
    (
     [0] => Array 
      (
       [data] => 7 
       [field] => 1 
       [type] => string 
      ) 

     [1] => Array 
      (
       [data] => 2011/07/13 
       [field] => -2 
       [sort] => 1310594015 
      ) 

     [2] => Array 
      (
       [data] => admin 
       [field] => -1 
       [sort] => admin 
      ) 
    ) 

[1] => Array 
    (
     [0] => Array 
      (
       [data] => 6 
       [field] => 1 
       [type] => string 
      ) 

     [1] => Array 
      (
       [data] => 2011/07/14 
       [field] => -2 
       [sort] => 1310667194 
      ) 

     [2] => Array 
      (
       [data] => admin 
       [field] => -1 
       [sort] => admin 
      ) 
    ) 
) 

Iはダウン第3レベルにおいて、「データ」キーの値に基づいて(すなわち、わずか2そのうちがある)最初のレベルで配列をソートしたいと思います。この場合、第1レベルの2つの配列がスワップするので、 'data'の値が6の配列は7の配列の前に来ます。 'data'キーを含む配列は常に[0]第2レベルの

答えて

5
usort($allArray,function($a,$b){ 
    return $a[0]['data']-$b[0]['data']; 
}) 
+0

+1。エレガントなソリューション。それはPHP 5.3が必要と信じています。 –

+0

@FrankFarmer、はい、PHP 5.3以降が必要です。しかし、create_function/dummy関数 – RiaD

+0

で5.2に書き直すのは簡単です。完璧に動作します。ありがとう。 –