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

2017-10-04 18:06:30 +08:00
 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"
}
2880 次点击
所在节点    PHP
12 条回复
huntzhan
2017-10-04 18:16:18 +08:00
没看懂,我觉得你可能需要锻炼一下表述能力
jhdxr
2017-10-04 18:16:43 +08:00
asort
jhdxr
2017-10-04 18:18:48 +08:00
不对,这不是直接 sort 就能搞定的吗?问题在哪?
xzem
2017-10-04 18:21:48 +08:00
楼主是认为当值是字符串数字时没法直接用 sort 吗?
crab
2017-10-04 18:55:26 +08:00
冒泡排序下
Sikoay
2017-10-04 19:18:35 +08:00
先转换为 int 再比较排序啊
messyidea
2017-10-04 19:22:49 +08:00
字符串默认的比较函数不就是字典序么
shiny
2017-10-04 19:31:33 +08:00
<?php
$items =["111", "333", "555", "222", "444", "666"];
sort($items);
var_dump($items);


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

规则没说清楚啊

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

字符串长度有限制吗?
aimerforreimu
2017-11-10 15:15:33 +08:00
```php
$test = array
(
'111','222','444','555','777','333','666'
);

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

var_dump($test);
```

直接用 sort 啊

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

https://www.v2ex.com/t/395416

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

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

© 2021 V2EX