检查php数组是否包含值

时间:2017-11-10 09:45:13

标签: php arrays

我有一个数组$ 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;不应该,因为数组只包含两个值?我错了什么?

3 个答案:

答案 0 :(得分:6)

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

echo  "equal to" . count(array_filter($array));

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

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

答案 1 :(得分:-1)

使用php array_filter函数

array_filter($array)

答案 2 :(得分:-1)

执行

echo  count(array_filter($captions));