我想排序的字母數組PHP排序數組問題
當我使用ASORT():它的排序,但我得到的結果是首先的,在大寫的名字,之後所有用小寫的名字
,如:
Avi
Beni
..
..
avi
beni
如果我要像:
Avi
avi
Beni
beni
..
..
我怎麼能做它?
我想排序的字母數組PHP排序數組問題
當我使用ASORT():它的排序,但我得到的結果是首先的,在大寫的名字,之後所有用小寫的名字
,如:
Avi
Beni
..
..
avi
beni
如果我要像:
Avi
avi
Beni
beni
..
..
我怎麼能做它?
所提出的解決方案,到現在爲止,的arent正確,natcasesort和usort($改編, 'strcasecmp')解決方案與一些開始陣列配置失敗。
讓我們做一些測試,找到一個解決方案。
<?php
$array1 = $array2 = $array3 = $array4 = $array5 = array('IMG1.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG2.png');
// This result is the one we nee to avoid
sort($array1);
echo "Standard sorting\n";
print_r($array1);
// img2.png and IMG2.png are not in the desired order
// note also the array index order in the result array
natcasesort($array2);
echo "\nNatural order sorting (case-insensitive)\n";
print_r($array2);
// img1.png and IMG1.png are not in the desired order
usort($array3, 'strcasecmp');
echo "\nNatural order sorting (usort-strcasecmp)\n";
print_r($array3);
// Required function using the standard sort algorithm
function mySort($a,$b) {
if (strtolower($a)== strtolower($b))
return strcmp($a,$b);
return strcasecmp($a,$b);
}
usort($array4, 'mySort');
echo "\nStandard order sorting (usort-userdefined)\n";
print_r($array4);
// Required function using the natural sort algorithm
function myNatSort($a,$b) {
if (strtolower($a)== strtolower($b))
return strnatcmp($a,$b);
return strnatcasecmp($a,$b);
}
usort($array5, 'myNatSort');
echo "\nNatural order sorting (usort-userdefined)\n";
print_r($array5);
?>
它不工作。嘗試對這個數組進行排序:array('IMG1.png','img12.png','img10.png','img2.png','img1.png','IMG2.png'); – Eineki 2010-09-13 08:45:23