我坚持排序问题,我有一个包含10个数字(1-10)的数组,我需要按照以下方式对10进行排序,例如...
期望的结果
$arr['a1','a10','a2','a3','a4','a5','a6','a7','a8','a9'];
实际结果
$arr['a1','a2','a3','a4','a5','a6','a7','a8','a9','a10'];
sort($arr);
$arr['a10','a1','a2','a3','a4','a5','a6','a7','a8','a9'];
我不知道这种排序的名称或如何执行它,如果有人可以帮助我,我会非常感激。
注意:数字是字符串的一部分
答案 0 :(得分:6)
尝试sort($arr,SORT_STRING)
明确将输入视为字符串。
编辑:既然您已经提供了实际的字符串,请尝试以下方法:
usort($arr,function($a,$b) {
$a = explode("=",$a);
$b = explode("=",$b);
return $a[0] == $b[0] ? strcmp($a[1],$b[1]) : strcmp($a[0],$b[0]);
});
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用第二个参数更改排序行为。
试试这个:
sort($arr, SORT_STRING);