我有一个数组$ captions,我想检查内部是否至少有一个值。数组看起来像这样:
Array
(
[0] => 84
[1] =>
[2] => 82
[3] =>
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] =>
)
以及检查是否有"超过0","超过1" ...
的方法if (count($captions) > 0) { echo '<br>bigger than 0';}
if (count($captions) === 1) {echo '<br>is 1';};
if (count($captions) > 1) {echo '<br>gbigger than 1';};
if (count($captions) > 2) {echo '<br>bigger than 2';}
但是:它给了我以下结果的数组:
bigger than 0
bigger than 1
bigger than 2
&#34;大于2&#34;不应该,因为数组只包含两个值?我错了什么?
答案 0 :(得分:6)
您需要这样做(使用array_filter()): -
echo "equal to" . count(array_filter($array));
输出: - https://eval.in/897055或https://eval.in/897063
注意: - 在您的代码中,您也在计算空值,因此会出现歧义。您需要先删除空值,然后需要计算。
答案 1 :(得分:-1)
使用php array_filter函数
array_filter($array)
答案 2 :(得分:-1)
执行
echo count(array_filter($captions));