加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP将图表中的最高编号排序为最低编号

发布时间:2020-12-13 17:21:30 所属栏目:PHP教程 来源:网络整理
导读:我正在创建一个CSS图表,根据数值列出从最高到最低的项目.问题是“rsort”似乎只计算前5位数(或者似乎是这样).这导致它显示的项目高于其他数字低于100,000.此问题的示例如下: $ITEM_1 = "95000";$ITEM_2 = "103000";.. $item_rank[]= "li$ITEM_1 Item 1/li";
我正在创建一个CSS图表,根据数值列出从最高到最低的项目.问题是“rsort”似乎只计算前5位数(或者似乎是这样).这导致它显示的项目高于其他数字低于100,000.此问题的示例如下:

$ITEM_1 = "95000";
$ITEM_2 = "103000";
.. 

$item_rank[]= "<li>$ITEM_1 Item 1</li>";
$item_rank[]= "<li>$ITEM_2 Item 2</li>";
..

rsort($item_rank); // sort highest numbers to lowest

echo "<ul>";     
echo $item_rank[0];
echo $item_rank[1];
 ..
echo "</ul>";

在这种情况下,第1项实际上是较低的数字,但它被排名较高,因为任何超过100,000的项目都被处理得更低.有没有解决的办法?

解决方法

我相信你应该使用 natsort().当你尝试对被视为字符串的数字进行排序时会发生这种情况.这是一个例子:

$a=array('1a','2a','3a','10a','15a');
rsort($a);
echo implode(',',$a); // outputs 3a,2a,1a,15a,10a

但是你期待这样的输出:

15a,10a,3a,1a

为此,请使用natsort和array_reverse():

$a=array('1a','15a');

natsort($a);
$a=array_reverse($a);

echo implode(',$a); // outputs 15a,1a

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读