警告:count():参数必须是一个实现Countable的数组或对象(在数组中是多维的)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了警告:count():参数必须是一个实现Countable的数组或对象(在数组中是多维的)相关的知识,希望对你有一定的参考价值。

我试图用这种方法计算多维数组的所有记录:

$totals=intval(array_sum(array_map("count",$array_name[$id])));

但它给了我以下错误:

Warning: count(): Parameter must be an array or an object that implements Countable

我读到这是由于php 7.2,实际上我只是从版本5迁移,但是,鉴于特定的语法,我无法使用isset()或is_array()来解决。有人可以帮我解决这个问题吗?如果存在更好的方法来计算这个,对我来说还可以:)在此先感谢您好

答案

传入一个检查以下内容的匿名函数:

$totals=intval(
  array_sum(
    array_map(
      function($a){
        if( is_countable($a) ) { return count($a); }
        else { return 1; }
      },
      $array_name[$id]
    )
  )
);

以上是关于警告:count():参数必须是一个实现Countable的数组或对象(在数组中是多维的)的主要内容,如果未能解决你的问题,请参考以下文章

PHP警告消息:count():参数必须是实现Countable的数组或对象[重复]

PHP错误:警告:count():参数必须是实现Countable的数组或对象

警告:count():参数必须是一个实现Countable的数组或对象(在数组中是多维的)

./libraries/plugin_interface.lib.php#551 count() 中的警告:参数必须是数组或实现 Countable 的对象

PHP 7.4 - 警告:count():参数必须是数组

Drupal:count():参数必须是数组或者实现了Countable的对象