Chinaunix

标题: 按数值排序的一点疑惑 [打印本页]

作者: rt77789    时间: 2008-09-06 22:03
标题: 按数值排序的一点疑惑
<html>

<head>
  <title></title>
</head>

<body>
         <pre>
<?php

$animals = array("1 dogs", "1 cats", "1 horses", "1 monkey", "1 gorilla", "1 zebras");

sort($animals, SORT_NUMERIC);

print_r($animals);
?>
             </pre>
</body>

</html>

输出为:
Array
(
    [0] => 1 gorilla
    [1] => 1 zebras
    [2] => 1 monkey
    [3] => 1 horses
    [4] => 1 cats
    [5] => 1 dogs
)
不太明白为什么输出这个顺序,如果按数值排序相等,那么则相等的乱序?
排序的规则是什么呢?
作者: hightman    时间: 2008-09-07 00:37
好好看手册, SORT按要求排序,但值一样的并没有规定谁在前谁在后
作者: rt77789    时间: 2008-09-07 08:51
如此说来sort是不稳定排序喽
作者: rt77789    时间: 2008-09-07 08:51
敢问那个手册?
作者: wildlily980    时间: 2008-09-07 12:37
应该是程序把值都转换成了数值了.都是1,所以就相等.
作者: 2gua    时间: 2008-09-07 15:24
原帖由 rt77789 于 2008-9-7 08:51 发表
敢问那个手册?

PHP帮助手册啊,全世界的PHPer都知道的。
作者: 2gua    时间: 2008-09-07 15:25
建议楼主看看sort函数的说明,可以加额外参数来达到目的。
作者: rt77789    时间: 2008-09-08 13:09
标题: 回复 #5 wildlily980 的帖子
相等这个没问题,我疑惑转成数值后相等,原来的顺序就变了,这显然不稳定排序
作者: rt77789    时间: 2008-09-08 13:09
标题: 回复 #7 lujx 的帖子
嗯,谢谢你的回复,我去看看手册。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2