2011-07-14 87 views
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 
      ) 
    ) 
) 

我想在第一級上的數組進行排序(即,只有它們中的2)的基礎上「數據」鍵的值,低於第三電平。在這種情況下,第一級的兩個數組應該交換,因此'data'值爲6的數組在7之前。數組''包含'data'的數組總是位於[0]的第二級。

回答

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

+1。優雅的解決方相信它需要PHP 5.3。 –

+0

@FrankFarmer,是的,它需要PHP 5.3+。但很容易將其重寫爲5.2-使用create_function/dummy功能 – RiaD

+0

非常棒,完美無缺。謝謝。 –