【问题标题】: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() 的副作用是,您会得到一个无限循环。这在正常情况下不会发生,但你永远不知道 :)
【解决方案4】:
bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
如here 所述。 “另请参阅”部分通常很有帮助