问个数组排序的问题,求帮忙

2017 年 10 月 4 日
 cnqncom
array(6) {
[0]=>
string(3) "111"
[1]=>
string(3) "333"
[2]=>
string(3) "555"
[3]=>
string(3) "222"
[4]=>
string(3) "444"
[5]=>
string(3) "666"
}


如果想这样排序,请问有什么简便的方法?
array(6) {
[0]=>
string(3) "111"
[1]=>
string(3) "222"
[2]=>
string(3) "333"
[3]=>
string(3) "444"
[4]=>
string(3) "555"
[5]=>
string(3) "666"
}
3689 次点击
所在节点    PHP
12 条回复
huntzhan
2017 年 10 月 4 日
没看懂,我觉得你可能需要锻炼一下表述能力
jhdxr
2017 年 10 月 4 日
asort
jhdxr
2017 年 10 月 4 日
不对,这不是直接 sort 就能搞定的吗?问题在哪?
xzem
2017 年 10 月 4 日
楼主是认为当值是字符串数字时没法直接用 sort 吗?
crab
2017 年 10 月 4 日
冒泡排序下
Sikoay
2017 年 10 月 4 日
先转换为 int 再比较排序啊
messyidea
2017 年 10 月 4 日
字符串默认的比较函数不就是字典序么
shiny
2017 年 10 月 4 日
<?php
$items =["111", "333", "555", "222", "444", "666"];
sort($items);
var_dump($items);


结果没有问题吧,担心哪天 PHP 行为不按数字类型比较的话,翻手册 sort 有个参数可以设置成 SORT_NUMERIC
60791151
2017 年 10 月 5 日
转成 int 然后再排序
gouchaoer
2017 年 10 月 5 日
在业务代码里你不需要知道是 int 还是 string,而且印象里从数据库查到的数据都是 string
zhx1991
2017 年 10 月 5 日
想这样排是怎么排?

规则没说清楚啊

99 比 0111 大还是小? 输入有除了 0-9 的其它字符吗?

字符串长度有限制吗?
aimerforreimu
2017 年 11 月 10 日
```php
$test = array
(
'111','222','444','555','777','333','666'
);

sort($test);
echo '<pre>';

var_dump($test);
```

直接用 sort 啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/395416

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX