今天和客户端进行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.

php sort 不同类型导致的问题相关推荐

  1. 不同施肥类型导致产量不同--SPSS 单因素方差分析

    由于不同施肥类型导致产量不同,看不同施肥类型之间是否有差异 数据输入 变量视图 数据视图 分析 对比 事后比较 选项 确定 方差齐性检验,大于0.05说明方差齐性,可以进行邦弗伦尼和邓肯检验.不齐,邓 ...

  2. 深入理解Spring MVC Controller返回String类型导致中文乱码的问题。

    代码 在Controller层写下如下的测试代码: @GetMappingpublic String test() {return "这是一个中文句子";} 调试 在return返 ...

  3. mysql改表字段类型导致数据丢失_故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题【转】...

    一.问题起源 不久前用户反馈部门的 MySQL 数据库发生了数据更新丢失.为了解决这个问题,当时对用户使用的场景进行了分析.发现可能是因为用户在两台互为主从的机器上都进行了写入导致的数据丢失. 如图所 ...

  4. Unity 关于MatchVS使用static类型导致GameObject.Find与Action等不可用的解决方法

    问题描述 最近使用 MatchVS 实现联网功能.MatchVS是一个游戏的 SDK ,延迟还是较小的.但是在调用 SDK 时发现下面问题: MatchVS 收到信息的回调函数为 static 类型的 ...

  5. redis有序集合类型sort set

    redis的数据类型之-有序集合 sort set和set类型一样,也是string类型元素的集合,也没有重复的元素,不同的是sort set每个元素都会关联一个权,通过权值可以有序的获取集合中的元素 ...

  6. redis 的使用 (sort set排序集合类型操作)

    sort set排序集合类型 释义: sort set 是 string 类型的集合 sort set 的每个元素 都会关联一个 权 通过 权值 可以有序的获取集合中的元素 应用场合: 获取热门帖子( ...

  7. 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)

    作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...

  8. [转]深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)...

    以下内容转自: 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-l ...

  9. Java Lambda(语言篇——lambda,方法引用,目标类型,默认方法,函数接口,变量捕获)

    深入理解Java 8 Lambda(语言篇--lambda,方法引用,目标类型和默认方法) 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout ...

最新文章

  1. Flash Builder 4.7 安装
  2. DeepMind新语言模型SUNDAE:教自动编码器学会「自我纠正」,WMT14英德互译任务获SOTA...
  3. web前端常识之浏览器原理
  4. JPA中实现单向多对一的关联关系
  5. 向上造型和向下造型_盆景造型大全——造型教程
  6. 表面粗糙度的基本评定参数是_表面粗糙度全方位解析,及表面粗糙度对照表
  7. 千万级大表如何更快速的创建索引_分享一份生产环境mysql数据库大表归档方案,值得收藏...
  8. Excel控件 Spire.XLS系列教程(2):C# 设置现有 Excel 图表的数据标签样式
  9. linux服务器运维操作命令,Linux服务器运维常用命令列表
  10. 心路历程19 -- 回顾整个历程 by tsui
  11. MySQL如何按天统计数据,没有记录的天自动补充0
  12. matlab状态空间程序,实验四用MATLAB求解状态空间模型
  13. 微信小程序在线旅游信息管理+后台管理系统
  14. 如何生成白底一寸照?怎么制作白底证件照?
  15. SREng 使用指南(一)SREng简介
  16. dw读取access中的图片_DreamWeaver入门必看:ACCESS数据库(三)
  17. win7 使用扫描仪扫描照片
  18. Linux服务器常见运维性能测试(2)内存测试mbw、stream
  19. 高校企业双向赋能,首届飞桨启航菁英计划圆满结束
  20. python从入门到入土表情包-Python自动生成表情包,python在手,从此斗图无敌手

热门文章

  1. 如何高效地阅读文献?
  2. MPI编程及性能优化
  3. Python、Lua和Ruby比较——脚本语言大P.K.
  4. 《大话数据结构》第2章 算法基础 2.9 算法的时间复杂度
  5. 在react-router中进行代码拆分
  6. OSChina 周四乱弹 —— 澳门首家货车上线啦
  7. python-学习 协程函数 模块与包
  8. 云计算学习(4-1)虚拟化技术
  9. Salesforce视图与控制器之间的交互
  10. Android进程退出的方法