Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按字母顺序对多维数组排序_Php_Arrays_Sorting_Multidimensional Array - Fatal编程技术网

Php 按字母顺序对多维数组排序

Php 按字母顺序对多维数组排序,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,如何按字母顺序对数组进行排序: $allowed = array( 'pre' => array(), 'code' => array(), 'a' => array( 'href' => array(), 'title' => array() ), 'strong' => array(), 'em' => arr

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

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

// sort($allowed); ?

您使用

ksort($allowed);

如上所述。“请参阅”部分通常非常有用

Aha!您需要
uksort()

(有用)

编辑:原因是,您似乎也想在数组内部排序?AFAIK ksort本身并不能做到这一点——它完全忽略了原始数组的值

Edit2:这应该是可行的(尽管使用递归而不是kusort):

函数ksort_deep(&$array){
ksort($数组);
foreach($array as&$value)
if(是_数组($value))
k深深(价值美元);
}
//使用示例:
ksort_deep(允许美元);
//看到它在行动吗
回显“”。打印错误($allowed,true)。“”;

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

哪些零件可能重复?我没有使用键,我只是对值进行排序。首先,“is_array()”做什么?
bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
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>';