我有一个数组,其键的格式为 [A1] -> [A20]、[B1] -> [B20] 等,我正在尝试使用 first 对该数组进行排序ksort()
(以正确的顺序获取字母) 然后uksort()
.
但是,我不知道uksort()
应该如何编写函数,并且我的数组键以奇怪的顺序返回。有人可以看看我做错了什么并提出建议吗?谢谢。
function _sort_selection_keys($a, $b){
$let_a = substr($a, 0, 1);
$let_b = substr($b, 0, 1);
$num_a = intval(substr($a, 1));
$num_a = intval(substr($b, 1));
/** Check that the first letter is the same. It should be, as the array has already been through 'ksort()', but it's worth checking any way */
if($let_a !== $let_b) :
return strcasecmp($a, $b);
endif;
if($num_a > $num_b) :
return -1;
elseif($num_a = $num_b) :
return 0;
elseif($num_a < $num_b) :
return 1;
endif;
}