如何计算isset()的数量?

时间:2018-01-23 06:23:54

标签: php arrays

我用过:

 $multi = array();
 // multi is filled with integers $i and $k $multi[$i][$k]
 // …
 if( count($multi[$i][$k]) + count($multi[$i+1][$k]) + count($multi[$i+1][$k+1]) == 2 ) {}

在PHP 7.2中给出了错误:

  

错误:count():参数必须是数组或实现Countable

的对象

现在我考虑将if更改为:

 if( !empty($multi[$i][$k]) && !empty($multi[$i+1][$k]) && !empty($multi[$i+1][$k+1])) {}

但是$ multi slot可以有0作为值,而且如果设置了2个槽,则不计算。

替代方案:

 if( isset($multi[$i][$k]) && isset($multi[$i+1][$k]) && isset($multi[$i+1][$k+1])) {}

但是,我的目标是确定设置了两个值。现在我想知道如何计算isset() s。

也许现在为时尚早,因为我看不到解决方案。

2 个答案:

答案 0 :(得分:1)

如果您想计算issets,请执行此操作。 PHP在求和时将布尔值转换为int

$a = 0;
$b = "";
echo isset($a) + isset($b) + isset($c); // 2

答案 1 :(得分:0)

因为true可能意味着1,那么您可以使用+运算符与isset一起使其工作

$condition = isset($multi[$i][$k]) + isset($multi[$i+1][$k]) + isset($multi[$i+1][$k+1]);
if($condition == 2) {
   echo 'passes'
}