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); ?
?
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 :)
ksort()
?
You use
ksort($allowed);
http://php.net/manual/en/function.ksort.php
bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
as described here. The 'See Also' section is usually very helpful
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With