【问题标题】:how to get only not null element count in array php如何在数组php中仅获取非空元素计数
【发布时间】:2011-12-02 02:54:34
【问题描述】:

我只想获得该数组中的非空值计数,如果我使用count()sizeof,它也会获得空索引。

就我而言

我有一个这样的数组Array ( [0] => )

count1 。但我想得到非空计数,在这种情况下它应该是0,我该怎么做,请帮助...... .....

【问题讨论】:

  • 只有NULL''(空字符串)和FALSE 也可以删除(基本上所有FALSE in PHP)?

标签: php arrays codeigniter


【解决方案1】:

只需使用 array_filter() 而无需回调

print_r(array_filter($entry));

【讨论】:

    【解决方案2】:
    $count = count(array_filter($array));
    

    array_filter 将删除计算结果为false 的所有条目,例如null、数字0 和空字符串。如果您只想删除null,您需要:

    $count = count(array_filter($array,create_function('$a','return $a !== null;')));
    

    【讨论】:

      【解决方案3】:

      类似...

      $count=0;
      foreach ($array as $k => $v)
      {
          if (!empty($v))
          {
              $count++;
          }
      }
      

      应该可以解决问题。 您也可以将其包装在如下函数中:

      function countArray($array)
      {
      $count=0;
      foreach ($array as $k => $v)
      {
          if (!empty($v))
          {
              $count++;
          }
      }
      return $count;
      
      }
      
      echo countArray($array);
      

      【讨论】:

      • 你应该使用 isset 不为空。 empty 将返回 true 为 false 和 0
      【解决方案4】:

      虽然我对 PHP 不太擅长,但我认为您应该以编程方式从数组中删除空元素 the link might help

      【讨论】:

        【解决方案5】:

        一个选项是

        echo "Count is ".count(array_filter($array_with_nulls, 'strlen'));
        

        如果你不计算空值和空值,你可以这样做

        echo "Count is ".count(array_filter($array_with_nulls));
        

        在此博客中您可以看到更多信息

        http://briancray.com/2009/04/25/remove-null-values-php-arrays/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-02-21
          • 1970-01-01
          • 1970-01-01
          • 2018-08-17
          • 2021-01-03
          • 1970-01-01
          • 1970-01-01
          • 2019-11-17
          相关资源
          最近更新 更多