【问题标题】:Sort multidimensional array alphabetically按字母顺序对多维数组进行排序
【发布时间】:2011-07-28 10:47:48
【问题描述】:

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

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

// sort($allowed); ?

?

【问题讨论】:

标签: php arrays sorting multidimensional-array


【解决方案1】:

啊哈!你需要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() 的副作用是,您会得到一个无限循环。这在正常情况下不会发生,但你永远不知道 :)

【讨论】:

  • 什么部分?我没有使用键,我只是对值进行排序。
  • 首先,'is_array()' 是做什么的?
【解决方案2】:

【讨论】:

    【解决方案3】:

    你使用

    ksort($allowed);
    

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

    【讨论】:

      【解决方案4】:
      bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
      

      here 所述。 “另请参阅”部分通常很有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-09
        • 1970-01-01
        • 2011-10-31
        • 1970-01-01
        相关资源
        最近更新 更多