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 :)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…