日志标签:数组

PHP中in_array奇怪的问题

分类:PHP评论:0条作者:awinds日期:2012-05-02阅读:17,144 views

    在in_array中有三个参数,一般用都是只用两个参数,如下以代码: $arr = array('0E372033','0E372034','0E372035','0E372036','0E372037','0E372038','0E372039'); if(in_array('0E372031',$arr)){ echo "true"; } else{ echo "false"; }     按正常来说,这个肯定不在数组中,输出应该是false,但是这段代码输出却是true。 我又把代码改成如下: $arr = array('0F372033','0F372034','0F372035','0F372036','0F372037','0F372038','0F372039'); if(in_array('0F372031',$arr)){ echo "true"; } else{ echo "false"; }     这个时候运行输出结果却是false。百思不得其解,到处请教和询问,终于找到了答案,原来0E372031这样的字符串在php的弱类型中会当着是科学计数法,所以就是0,这个时候判断in_array,和0E372033这样的值就相等了,解决方法就是如以下代码: $arr = array('0E372033','0E372034','0E372035','0E372036','0E372037','0E372038','0E372039'); if(in_array('0E372031',$arr,true)){ ec…
Tags: , ,