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'
}