关于PHP in_array判定的疑问,请高手解答
这是因为在比较时,因为忽略了类型比较,为了和布尔型true比较,程序将‘b’转换为布尔型,值为true,所以结果为true
像这种情况还有很多
比如$test = 0;in_array(’b’, $test)也返回true;‘b’和0比较需要把‘b’转换为int型,所以转换为0,和0比较的true;
这都是因为忽略了类型的比较
in_array的第三个参数设为true,表示全等比较,也就是考虑类型
php数组根据键名怎么合并呢
//PHP内置函数有个array_merge可以做你想要的功能
//设你的第一个数组为$arr1,第二个数组为$arr2
《?php
function my_arraymerge($arr1,$arr2){
for($i=0;$i《count($arr1);$i++){ //根据$arr1的长度,一个一个合并
$result = array_merge($arr1[$i],$arr2[$i]);//$result是你想要的合并后的数组
}
}
?》
//此函数的缺点是必须你给出的两个数组长度是一样,而且键名都是数字,并且你要合并的顺序也是要一样才可以
php in_array返回值得问题
在PHP的布尔类型中
echo false; #在HTML页面中不会有任何输出,属于空,可以用于判断,但是不可见
var_dump(false); #就能看到 bool(false),可见
echo true; #在HTML页面中会输出 1,可以用于判断
var_dump(true); #就能看到 bool(true),可见
打印方式不同,判断是没有问题,只是不会输出 布尔类型的 false