我知道php中有natsort()和natcasesort()函數來按自然順序對數組元素進行排序。我正在嘗試對以下內容進行排序。按字母順序對php數組進行排序
array[0]= '10. xyz';
array[1]= '13. xyz';
array[2]= '2. xyz';
array[3]= '1a. xyz';
array[4]= '6. xyz';
array[5]= '1b. xyz';
array[6]= '4a. xyz';
array[7]= '4b. xyz';
現在,如果我申請natsort(),'10 ..'和'13 ..'放在'1a ..'之上。我怎樣才能讓我的php代碼認爲'10 ...'比'1a ...'和'1a ...'要高。在我的具體情況正確的輸出是:
'1a. xyz';
'1b. xyz';
'2. xyz';
'4a. xyz';
'4b. xyz';
'6. xyz';
'10. xyz';
'13. xyz';
我使用了自定義算法中,但它不一樣的...這是之前‘1A地方'10 ......’。我的繼承人自定義功能:
function cmp($a, $b) {
$a_ex=explode(".",$a);
$b_ex=explode(".",$b);
if ($a_ex[0] == $b_ex[0]) {
return 0;
}
return ($a_ex[0] < $b_ex[0]) ? -1 : 1;
}
只有usort ..... – idm
正如其他已經公佈,'natsort()'爲我工作。你使用的是什麼版本的PHP? – Hammerite