排序多维数组辅助键

时间:2011-12-08 22:52:30

标签: php arrays sorting multidimensional-array

我正在尝试在PHP中找出正确的函数来对多维数组进行排序。我考虑做一个foreach然后使用kso​​rt(这不起作用)。我认为可能有用的是注意二级键(数字键)是“手动”设置的(而不是使用array_push,因为该场景中的第一个键将是0而不是1)。

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

注意我想保留PRIMARY键(例如,主要和促销)当前的顺序。

未排序的数组......

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
        )

)

2 个答案:

答案 0 :(得分:3)

您可以尝试:

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

答案 1 :(得分:2)

你也可以试试这个:

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

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