子元素上的php数组排序

子元素上的php数组排序,php,arrays,sorting,associative-array,Php,Arrays,Sorting,Associative Array,我正在尝试根据第一个子元素对数组进行排序。但在我的代码中,键被替换为排序中的数组号: $myArray = array( 'my last row' => array( '0' => 'ZZZZ', '1' => 'AAAA' ), 'the first row' => array( '0' => 'AAAA' ) ); usort($myArray, 'cmp' )

我正在尝试根据第一个子元素对数组进行排序。但在我的代码中,键被替换为排序中的数组号:

$myArray = array(
    'my last row' => array(  
         '0' => 'ZZZZ',
         '1' => 'AAAA'
     ),
     'the first row' => array(
         '0' => 'AAAA'
     )
  );
usort($myArray, 'cmp' ) ;

var_dump($myArray);

function cmp    ($a, $b)        {
        return ( ( $a[0] > $b[0] ) ? 1 : -1 );
}
结果:

array(2) {
  [0]=>       // should be ['the first row']  *not* [0]
  array(1) {
    [0]=>
    string(4) "AAAA"
  }
  [1]=>        // should be ['my last row']  *not* [1]
  array(2) {
    [0]=>
    string(4) "ZZZZ"
    [1]=>
    string(4) "AAAA"
  }
}
排序顺序本身似乎正在按预期工作

我希望看到以下情况:

the first row  => AAAA
my last row   =>  ZZZZ, AAAA
这可能是一个非常简单的问题,但我无法解决它

多谢各位

编辑:这种排序不涉及键本身,而是一个子元素键。我相信这使得这个问题很独特。

试试这个: 它将维护您的索引关联

$myArray = array(
'my last row' => array(  
     '0' => 'ZZZZ',
     '1' => 'AAAA'
 ),
 'the first row' => array(
     '0' => 'AAAA'
 )
)); asort($myArray)


数组([第一行]=>Array([0]=>AAAA)[我的最后一行]=>Array([0]=>ZZZZ[1]=>AAAA))

可能重复的“不要惊慌”使用“uasort”的建议非常有效,但他似乎删除了他的答案。如果你想再把它放在那里,我会很荣幸地选择它作为正确的一个。@edwardsmarkf我在找到我认为是重复的东西后删除了它。老实说,它在我看来仍然像是复制品。也许再看看那个?他们的比较功能是不同的,但主要的一点是,他们有相同的问题,钥匙没有被保留。不要惊慌-你是对的,这是一个重复的,对不起。但你的解决方案效果很好。遗憾的是,我发现这会对性能造成巨大的影响,因此我正在考虑在客户端进行排序。
print_r($myArray);