PHP数组排序()

mk_*_*_89 1 php sorting

我坚持排序问题,我有一个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)

我不知道这种类型的排序的名称或如何执行它,如果有人可以帮助我,它将非常感激.

注意:数字是字符串的一部分

Nie*_*sol 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]);
});
Run Code Online (Sandbox Code Playgroud)