Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何计算isset()的数量?_Php_Arrays - Fatal编程技术网

Php 如何计算isset()的数量?

Php 如何计算isset()的数量?,php,arrays,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:参数必须是实现可计数的数组或对象 现在我考虑将if更改为: 但是$multi-slot可

我用过:

 $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:参数必须是实现可计数的数组或对象

现在我考虑将if更改为:

但是$multi-slot可以有0作为值,另外,如果设置了2个slot,则该值不计算在内

备选方案:

 if( isset($multi[$i][$k]) && isset($multi[$i+1][$k]) && isset($multi[$i+1][$k+1])) {}
然而,我的目标是计算恰好设置了两个值。现在我想知道我怎么能数一数

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

如果你想数一数ISSET,就这么做。PHP在求和时将布尔值转换为int

$a = 0;
$b = "";
echo isset($a) + isset($b) + isset($c); // 2
因为true可以表示1,所以可以将+运算符与isset一起使用以使其工作

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

你有没有向emptyshow us查询过$multi的一些虚拟数据?我添加了这个信息:$multi是用整数$i和$k填充的。太简单了,太棒了。谢谢你指出这一点,我不知道你能这样数他们!
$condition = isset($multi[$i][$k]) + isset($multi[$i+1][$k]) + isset($multi[$i+1][$k+1]);
if($condition == 2) {
   echo 'passes'
}