Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按值排序php数组未按预期工作_Php_Arrays_Usort - Fatal编程技术网

按值排序php数组未按预期工作

按值排序php数组未按预期工作,php,arrays,usort,Php,Arrays,Usort,在对数组执行以下操作后,我得到了这个结果。这不应该按“计算机名”排序吗?你会发现它们不是阿尔法顺序 usort($test, function($a, $b) { return $a['computer_name'] - $b['computer_name']; }); echo "<pre>"; print_r($test); echo "</pre>"; Array ( [0] => Array (

在对数组执行以下操作后,我得到了这个结果。这不应该按“计算机名”排序吗?你会发现它们不是阿尔法顺序

usort($test, function($a, $b) {
    return $a['computer_name'] - $b['computer_name'];
});

echo "<pre>";
print_r($test);
echo "</pre>";


Array
(
    [0] => Array
        (
            [computer_id] => 367
            [account_id] => 1
            [computer_name] => EXAMPLE_ONE
            [last_username] => muah
            [timestamp] => 2014-01-01 17:06:04
        )

    [1] => Array
        (
            [computer_id] => 366
            [account_id] => 1
            [computer_name] => TESTING
            [last_username] => 
            [timestamp] => 2013-12-06 20:02:14
        )

    [2] => Array
        (
            [computer_id] => 365
            [account_id] => 1
            [computer_name] => JOE-SCHMOE
            [last_username] => 
            [timestamp] => 2013-12-06 20:02:03
        )

    [3] => Array
        (
            [computer_id] => 18
            [account_id] => 1
            [computer_name] => SPORT-ONE
            [last_username] => 
            [timestamp] => 2012-10-16 03:31:22
        )

    [4] => Array
        (
            [computer_id] => 3
            [account_id] => 1
            [computer_name] => SPORT-TWO
            [last_username] => 
            [timestamp] => 2011-03-03 03:35:46
        )

)
usort($test,function($a,$b){
返回$a['computer_name']-$b['computer_name'];
});
回声“;
打印(测试);
回声“;
排列
(
[0]=>阵列
(
[计算机id]=>367
[帐户id]=>1
[计算机名称]=>示例一
[最后的用户名]=>muah
[时间戳]=>2014-01-01 17:06:04
)
[1] =>阵列
(
[计算机id]=>366
[帐户id]=>1
[计算机名称]=>测试
[上次用户名]=>
[时间戳]=>2013-12-06 20:02:14
)
[2] =>阵列
(
[计算机id]=>365
[帐户id]=>1
[计算机名称]=>JOE-SCHMOE
[上次用户名]=>
[时间戳]=>2013-12-06 20:02:03
)
[3] =>阵列
(
[计算机id]=>18
[帐户id]=>1
[计算机名称]=>SPORT-ONE
[上次用户名]=>
[时间戳]=>2012-10-16 03:31:22
)
[4] =>阵列
(
[计算机id]=>3
[帐户id]=>1
[计算机名称]=>SPORT-TWO
[上次用户名]=>
[时间戳]=>2011-03-03 03:35:46
)
)

我认为问题在于
示例一-测试
,或
示例一-运动一
始终等于0

您可以尝试使用here或不区分大小写的版本

实际上,看一下的文档,这里有一个例子。你上面的例子是这样的


好发现。。。成功了!我只是假设,但当你这样解释的时候,结果为什么会发生是完全有道理的。谢谢
usort($test, function($a, $b) {
    return strcmp($a['computer_name'], $b['computer_name']);
});