我坚持排序问题,我有一个10个数字(1-10)的数组,我需要按照以下方式排序,其中10将在1之后,例如......
期望的结果
$arr['a1','a10','a2','a3','a4','a5','a6','a7','a8','a9'];
Run Code Online (Sandbox Code Playgroud)
实际结果
$arr['a1','a2','a3','a4','a5','a6','a7','a8','a9','a10'];
sort($arr);
$arr['a10','a1','a2','a3','a4','a5','a6','a7','a8','a9'];
Run Code Online (Sandbox Code Playgroud)
我不知道这种类型的排序的名称或如何执行它,如果有人可以帮助我,它将非常感激.
注意:数字是字符串的一部分
尝试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]);
});
Run Code Online (Sandbox Code Playgroud)