PHP数组中不同数据类型的值之间如何比较?

php菜鸟,发现以下问题不懂,请教各位。

<?php 
    $pic=array(1,0,a,b,z);
    arsort($pic);
    print_r($pic);
 ?>

降序输出:clipboard.png


<?php 
    $pic=array(1,0,a,b,z);
    asort($pic);
    print_r($pic);
 ?>

升序输出;
clipboard.png

关于以上,我想问的是1,0,a,b,z是怎么比较大小的?


接下来,我改变了数组元素的位置:

<?php 
    $pic=array(1,a,b,0,z);
    asort($pic);
    print_r($pic);
 ?>

为什么会跟之前的升序不一样?
clipboard.png

阅读 3.1k
2 个回答
新手上路,请多包涵

php 排序函数在进行排序的默认是对数值进行排序的,在遇到字符a是会认为a是字符串,将a转换为数值为0! 要想按字符排序可在asort函数加参数 SORT_STRING

php数据的比较是隐式转换吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题