按字母顺序排序多维数组

时间:2011-04-02 23:35:05

标签: php arrays sorting multidimensional-array

如何按字母顺序对数组进行排序:

$allowed = array(
  'pre'    => array(),
  'code'   => array(),
  'a'      => array(
                'href'  => array(),
                'title' => array()
              ),
  'strong' => array(),
  'em'     => array(),
);

// sort($allowed); ?

4 个答案:

答案 0 :(得分:9)

啊哈!您需要uksort();

Comparison of PHP sorting functions.(大坝有用)

编辑:原因是,您似乎也希望在数组内部进行排序? AFAIK ksort本身并不这样做 - 它完全忽略了原始数组的值。

Edit2:这应该有用(虽然使用递归而不是kusort):

function ksort_deep(&$array){
    ksort($array);
    foreach($array as &$value)
        if(is_array($value))
            ksort_deep($value);
}

// example of use:
ksort_deep($allowed);

// see it in action
echo '<pre>'.print_r($allowed,true).'</pre>';

重要提示:如果相同的数组引用自身,则不使用uksort()的副作用是,您将获得无限循环。这种情况在正常情况下不会发生,但您永远不会知道:)

答案 1 :(得分:4)

ksort()

答案 2 :(得分:2)

您使用

ksort($allowed);

http://php.net/manual/en/function.ksort.php

答案 3 :(得分:2)

bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

here所述。 “另请参阅”部分通常非常有用