Sort multidimensional array alphabetically
11,513
Solution 1
Aha! You need uksort();
Comparison of PHP sorting functions. (dam useful)
Edit: Reason is, you seem to want to sort inside arrays as well? AFAIK ksort by itself doesn't do that - it outright ignores the value of the original array.
Edit2: This ought to work (though uses recursion instead of 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>';
Important: As a side effect of not using uksort()
if the same array references to itself, you get an infinite loop. This won't happen in normal cases, but you never know :)
Solution 2
ksort()
?
Solution 3
You use
ksort($allowed);
http://php.net/manual/en/function.ksort.php
Solution 4
bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
as described here. The 'See Also' section is usually very helpful
Comments
-
Alex almost 2 years
How can I sort a array like this alphabetically:
$allowed = array( 'pre' => array(), 'code' => array(), 'a' => array( 'href' => array(), 'title' => array() ), 'strong' => array(), 'em' => array(), ); // sort($allowed); ?
?