资讯专栏INFORMATION COLUMN

php sort 不同类型导致的问题

imingyu / 402人阅读

摘要:今天和客户端进行签名校验,打算按照参数的进行升序列排序然后进行处理,但是使用方法进行排序的时候,却发现一个神奇的问题我们这里将数组值的顺序调整下问题出现了,两次排序竟然顺序是不一样的从上找到了答案重点就是

今天和客户端进行api签名校验,打算按照参数的ascii进行升序列排序然后进行sha1处理,但是使用sort方法进行排序的时候,却发现一个神奇的问题

php > $a = ["ZfQW5yH1IkBmn13smeEnWQ==",0,"502857731"];
php > sort($a,0);
php > var_dump($a);
array(3) {
  [0]=>
  string(24) "ZfQW5yH1IkBmn13smeEnWQ=="
  [1]=>
  int(0)
  [2]=>
  string(9) "502857731"
}
// 我们这里将数组值的顺序调整下
php > $a = ["ZfQW5yH1IkBmn13smeEnWQ==","502857731",0];
php > sort($a,0);
php > var_dump($a);
array(3) {
  [0]=>
  int(0)
  [1]=>
  string(9) "502857731"
  [2]=>
  string(24) "ZfQW5yH1IkBmn13smeEnWQ=="
}

问题出现了,两次排序竟然顺序是不一样的!

从stackoverflow上找到了答案
【Numeric sort an array with mixed types values】

重点就是:

Be careful when sorting arrays with mixed types values because sort() can produce unpredictable results.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23335.html

相关文章

  • PHP 引用是个坑,请慎用

    摘要:发布时最大的变动是对象处理方式。这很容易被误解为引用,但是存储器的引用与引用是完全不同的概念。使用引用是一件不好的事情,除了引用本身不好,并且还会使性能下降这个事实外,使用引用这种方式会使得代码难以维护。 showImg(https://segmentfault.com/img/remote/1460000014082570); 去年我参加了很多次会议,其中八次会议里我进行了相关发言,...

    dockerclub 评论0 收藏0
  • PHP面试:尽可能多说出你知道排序算法

    摘要:良好的排序算法具有进行最少的比较和交换的特征。冒泡排序是一个基于比较的排序算法,被认为是效率最低的排序算法之一。现在让我们使用实现冒泡排序算法。插入排序到目前为止,我们已经看到了两种基于比较的排序算法。 预警 本文适合对于排序算法不太了解的新手同学观看,大佬直接忽略即可。因为考虑到连贯性,所以篇幅较长。老铁们看完需要大概一个小时,但是从入门到完全理解可能需要10个小时(哈哈哈,以我自己...

    objc94 评论0 收藏0
  • PHP面试常考内容之Memcache和Redis(2)

    摘要:继周一发布的面试常考内容之和后,这是第二篇,感谢你的支持和阅读。预告面试常考内容之和将于本周五更新。以上内容摘自程序员面试笔试宝典书籍,该书已在天猫京东当当等电商平台销售。 你好,是我琉忆。继周一(2019.2-18)发布的PHP面试常考内容之Memcache和Redis(1)后,这是第二篇,感谢你的支持和阅读。本周(2019.2-18至2-22)的文章内容点为以下几点,更新时间为每周...

    Eric 评论0 收藏0
  • PHP面试常考内容之Memcache和Redis(2)

    摘要:继周一发布的面试常考内容之和后,这是第二篇,感谢你的支持和阅读。预告面试常考内容之和将于本周五更新。以上内容摘自程序员面试笔试宝典书籍,该书已在天猫京东当当等电商平台销售。 你好,是我琉忆。继周一(2019.2-18)发布的PHP面试常考内容之Memcache和Redis(1)后,这是第二篇,感谢你的支持和阅读。本周(2019.2-18至2-22)的文章内容点为以下几点,更新时间为每周...

    sewerganger 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<