我被困了..我不明白以下行为:
$qtest= 3;
$testarray[0] = array();
$testarray[1] = array();
$testarray[2][0] = 0;
print_r($testarray);echo "<br>";
for ($s = 0; $s < $qtest; $s++){
if (count($testarray[$s] > 0 )){
echo count($testarray[$s]); echo "<br>";
break;
}
}
我希望只能看到结果:
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( [0] => 0 ) )
1
但结果是:
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( [0] => 0 ) )
0
为什么我收到0而不是1 ?????? 真的应该帮忙! 感谢
答案 0 :(得分:1)
在比较中,您将数组与0进行比较 如果将空数组与0比较为
$arr = []
$arr > 0 #true
它将返回true,这就是这里发生的事情
您应该检查count($testarray[$s]) > 0
这是更正后的代码
$qtest= 3;
$testarray[0] = array();
$testarray[1] = array();
$testarray[2][0] = 0;
print_r($testarray);echo "<br>";
for ($s = 0; $s < $qtest; $s++){
if (count($testarray[$s]) > 0 ){
echo count($testarray[$s]); echo "<br>";
break;
}
}
答案 1 :(得分:0)
在if子句中设置条件错误地在比较后放置括号。
$qtest= 3;
$testarray[0] = array();
$testarray[1] = array();
$testarray[2][0] = 0;
print_r($testarray);echo "<br>";
for ($s = 0; $s < $qtest; $s++){
if (count($testarray[$s]) > 0){
echo count($testarray[$s]); echo "<br>";
break;
}
}