2011-07-14 86 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

非常棒,完美无缺。谢谢。 –