为了账号安全,请及时绑定邮箱和手机立即绑定

ksort数组排序问题?

有人知道 $arr=(0=>'a','a'=>'b','b'=>'p')   ksort ($arr), var_dump($arr),结果是如何得到的吗???

正在回答

2 回答


ksort() 函数对关联数组按照键名进行升序排序。

ksort(array,sorttype)参数array  必需,规定要排序的数组。sorttype 可选,规定如何排列数组的值。可能的值:

SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型) SORT_NUMERIC - 把值作为数字来处理 SORT_STRING - 把值作为字符串来处理 >SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置

0的ASCII值小于a的,a的ASCII值小于b的,所以排出来键值顺序是 0 ‘a’ 'b' 

我是这样理解的。

0 回复 有任何疑惑可以回复我~
#1

亿城 提问者

可是我运行的结果并不是这样的 结果是array 'b' => string 'p' (length=1) 0 => string 'a' (length=1) 'a' => string 'b' (length=1)
2016-12-29 回复 有任何疑惑可以回复我~
#2

慕九州4939312 回复 亿城 提问者

麻烦你把你的运行代码回复到下面 谢谢
2016-12-29 回复 有任何疑惑可以回复我~
#3

亿城 提问者 回复 慕九州4939312

$arr = array('a'=>'b',0=>'a','b'=>'f');ksort($arr);var_dump($arr); 结果是:array 'b' => string 'f' (length=1) 0 => string 'a' (length=1) 'a' => string 'b' (length=1)
2016-12-29 回复 有任何疑惑可以回复我~
#4

慕九州4939312

回复 亿城抱歉 我之前给你说错了 ksort()混排的话并不是简单的比较ASCII码,想要理解它混排过程的话估计要从源码入手,我是无能为力了。
2016-12-29 回复 有任何疑惑可以回复我~
#5

亿城 提问者 回复 慕九州4939312

谢谢你的回复
2016-12-30 回复 有任何疑惑可以回复我~
查看2条回复

可是我运行的结果并不是这样的 

结果是array
 'b' => string 'p' (length=1)
 0 => string 'a' (length=1)
 'a' => string 'b' (length=1)

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP进阶篇
  • 参与学习       181827    人
  • 解答问题       2577    个

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

进入课程

ksort数组排序问题?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信