2011-12-08 62 views
0

我想弄清楚正确的函数在PHP中排序多维数组。我考虑做一个foreach然后使用kso​​rt(这不起作用)。我认为注意第二个键(数字键)是“手动”设置(而不是使用array_push,因为该场景中的第一个键将是0而不是1)可能会很有用。排序多维数组副键

这是一个单一的实例,所以我不需要为这个或任何超类特殊的类,我对PHP中的正确上下文函数感兴趣,以使这些代码更加面向性能(以及以弄清楚我做错了什么)。

注意我想保留PRIMARY键(e,g,Main和Promotional)它们的当前顺序。

在无序数组...

Array 
(
    [Main] => Array 
     (
      [3] => Main2 
      [2] => Content 
      [1] => Main1 
     ) 

    [Promotional] => Array 
     (
      [3] => Promotional1 
      [2] => Content 
      [1] => Promotional2 
     ) 

) 

期望得到的结果(通过二级键排序)...

Array 
(
    [Main] => Array 
     (
      [1] => Main1 
      [2] => Content 
      [3] => Main2 
     ) 

    [Promotional] => Array 
     (
      [1] => Promotional2 
      [2] => Content 
      [3] => Promotional1 
     ) 

) 
+0

为什么不在二级迭代中使用for循环? – Arend

回答

2

你也可以试试这个:

foreach($array as $key => &$data) { 
    ksort($data); 
} 

$ data变量之前的&符号指示$ data变量是一个指针,并且对该变量的任何更改都会级联回原始配置。

+0

感谢您的澄清。 – John

3

你可以试试:

foreach($array as $key => $data) { 
    ksort($data); 
    $array[$key] = $data; 
} 
+0

时间限定在一分钟后会接受,谢谢。 – John