按值排序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']);
});