Atenção: Quantidade (): Parâmetro deve ser uma matriz ou de um objecto que implementa Countable (em matriz multidimensional)

votos
-2

Estou tentando contar todos os registros de uma matriz multidimensional com este método:

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

Mas ele me dá o seguinte erro:

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

Eu li que é devido para php 7,2, e na verdade eu só fez a migração da versão 5, no entanto, dada a sintaxe particular, eu não poderia resolver com uma isset () ou um is_array (). Alguém pode me ajudar a resolver este problema? Se existe uma maneira melhor de fazer essa contagem, é ok para mim :) Obrigado antecipadamente Olá

Publicado 27/11/2018 em 18:01
fonte usuário
Em outras línguas...                            


1 respostas

votos
-1

Passar para uma função anônima que verifica:

$totals=intval(
  array_sum(
    array_map(
      function($a){
        if( is_countable($a) ) { return count($a); }
        else { return 1; }
      },
      $array_name[$id]
    )
  )
);
Respondeu 27/11/2018 em 18:18
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more