关于数组比较的问题

「已注销」 2018-03-15 12:44:38
$arr1 = array(1,2,3) ;
$arr2 = array(1=>200,2=>3,0=>2);

var_dump( $arr1==$arr2 );// false
var_dump( $arr1>$arr2 ); // false
var_dump( $arr1<$arr2 );// true


​$arr1 = array(1,2,3) ;
$arr2 = array(1=>200,2=>3,0=>0);

var_dump( $arr1==$arr2 ); //false
var_dump( $arr1>$arr2 );//false 按照PHP手册的解释,这个地方不应该是true吗??
var_dump( $arr1<$arr2 );//false
...全文
1161 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
klave 2018-03-24
  • 打赏
  • 举报
回复
没有value值,所以无法比较,故输出false; 如果随便给value赋一个值: $arr2 = array(1=>200,2=>3,0=>1); array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } array(3) { [1]=> int(200) [2]=> int(3) [0]=> int(1) } bool(false) bool(false) bool(true)那么就是第三个为true,如果第三个k和前两个K的其中一个相等: $arr2 = array(1=>200,2=>3,1=>0); 输出: array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } array(2) { [1]=> int(0) [2]=> int(3) } bool(false) bool(true) bool(false) 所以,k不能全部一样,不然会覆盖第一个的值;value需要有赋值,不然无法比较;
torcher 2018-03-16
  • 打赏
  • 举报
回复
钻牛角了,数组比较大小有意义吗? 即使有,也是在一定条件下的,不必要纠结于手册,有需要就自己写,符合需求的比较方式。
zxh_33 2018-03-16
  • 打赏
  • 举报
回复
根据手册解释: 首先元素数量比较,1比2多返回1,2比1多返回-1 如果一样多那么遍历1,如果1的key不在2里则返回null,在的话比较value,1大返回1,2大返回-1,相等则继续比较下一个key 遍历完都一样则返回0 其实要比较数组还是自己写比较的函数吧
「已注销」 2018-03-15
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
他实例的代码有问题,只比较了第一成员就退出了,显然不符合 否则挨个值比较 的描述
那数组比较大小的规则到底是什么??
xuzuning 2018-03-15
  • 打赏
  • 举报
回复
他实例的代码有问题,只比较了第一成员就退出了,显然不符合 否则挨个值比较 的描述
「已注销」 2018-03-15
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
数组没有 大小比较运算!
请贴出你的 PHP手册的解释

「已注销」 2018-03-15
  • 打赏
  • 举报
回复
xuzuning 2018-03-15
  • 打赏
  • 举报
回复
数组没有 大小比较运算! 请贴出你的 PHP手册的解释

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧