我有一個數組,其鍵的格式爲[A1] - > [A20],[B1] - > [B20]等,我正在嘗試首先使用ksort()
(以正確的順序獲取字母)然後uksort()
對數組進行排序。數組鍵由'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;
}
爲什麼不只是:'ksort($ array,SORT_NATURAL);'? – 2013-04-10 16:00:19
完美,謝謝。我不知道你可以這樣使用'uksort()',但現在我明白了,這很明顯! – 2013-04-10 16:00:46
@ M8R-1jmw5r是的,這也有效。 – xdazz 2013-04-10 16:03:53