if(( (in_array(0,$status_arr)) || (in_array(0,$genstatus_arr)) ) &&
((!in_array(0,$escalation_arr)) || (!in_array(0,$genescalation_arr))) ){
echo 'Something';
}else if(( (in_array(1,$status_arr)) || (in_array(1,$genstatus_arr)) )){
echo 'Something Else';
}
我在这里比较0
值in_array
和non-zero
!in_array
。结果根据if-else条件而有所不同,但不会输出预期结果。
为了避免这种情况,我尝试使用第三个参数true
,将比较置于严格模式,这不仅会比较值,还会比较类型:
如何检查某个数组中是否存在0
或1
而另一个数组中是否存在?
数组值如下所示:
var_dump($status_arr);
array (size=6)
0 => string '0' (length=1)
1 => string '0' (length=1)
2 => string '0' (length=1)
3 => string '0' (length=1)
4 => string '0' (length=1)
var_dump($genstatus_arr);
array (size=6)
0 => string '1' (length=1)
1 => string '1' (length=1)
2 => string '1' (length=1)
3 => string '1' (length=1)
4 => string '1' (length=1)
对于以下情况,它不起作用
if( (in_array(0,$status_arr)) && (!in_array(0,$genstatus_arr)) )
它也不是IN ARRAY
的副本答案 0 :(得分:0)
var_dump(in_array(0,$ status_arr,true));
应该返回true
,没有任何异常。如果您看到false
,则很可能是因为您的0
之一是字符串0
而不是数字0
。
如果是这种情况,请删除strict
参数
$array=array(0,2,3);
var_dump(in_array(0,$array,true));
返回
bool(true)
并且
$array=array('0','2','3');
var_dump(in_array(0,$array,true));
返回
bool(false)
你提到了
对于以下情况,它不起作用
print_r($status_arr);
Array([0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0)
print_r($genstatus_arr);
Array([0] => 1 [1] => 1 [2] => 1 [3] => 1 [4] => 1 [5] => 1)
if( (in_array(0,$status_arr)) && (!in_array(0,$genstatus_arr)) )
这是一个不正确的观察,因为条件完全正常。
<强> Example 强>
答案 1 :(得分:0)
在您的情况下,您正在尝试使用字符串
var_dump($status_arr);
array (size=6)
0 => string '0' (length=1)
1 => string '0' (length=1)
2 => string '0' (length=1)
3 => string '0' (length=1)
4 => string '0' (length=1)
var_dump($genstatus_arr);
array (size=6)
0 => string '1' (length=1)
1 => string '1' (length=1)
2 => string '1' (length=1)
3 => string '1' (length=1)
4 => string '1' (length=1)
试试这个例子:
<?php
$status_arr = array();
$status_arr = array_pad($status_arr, 6, 0);
$genstatus_arr = array();
$genstatus_arr = array_pad($genstatus_arr, 6, 1);
var_dump($status_arr);
var_dump($genstatus_arr);
if( (in_array(0,$status_arr)) && (!in_array(0,$genstatus_arr)) ) {
echo 'Works as espected';
}