检查php数组是否包含值

Cyc*_*e99 0 php arrays

我有一个数组$ captions我想检查内部是否至少有一个值.数组看起来像这样:

Array
(
    [0] => 84
    [1] => 
    [2] => 82
    [3] => 
    [4] => 
    [5] => 
    [6] => 
    [7] => 
    [8] => 
    [9] => 
)
Run Code Online (Sandbox Code Playgroud)

我的方式检查是否有"超过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';}
Run Code Online (Sandbox Code Playgroud)

但是:它给了我这个数组以上结果:

bigger than 0
bigger than 1
bigger than 2
Run Code Online (Sandbox Code Playgroud)

"大于2"不应该,因为数组只包含两个值?我错了什么?

Ana*_*Die 6

你需要这样做(使用array_filter()): -

echo  "equal to" . count(array_filter($array));
Run Code Online (Sandbox Code Playgroud)

输出: - https://eval.in/897055https://eval.in/897063

注意: - 在您的代码中,您也在计算空值,因此会出现歧义.您需要先删除空值然后需要计数.