downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

current> <compact
[edit] Last updated: Thu, 23 May 2013

view this page in

count

(PHP 4, PHP 5)

countConta o número de elementos de uma variável, ou propriedades de um objeto

Descrição

int count ( mixed $var [, int $mode ] )

Conta os elementos de um array, ou propriedades em um objeto.

Para objetos, se você tem SPL instalada, você pode fazer um gancho na count() implementando a interface Countable. A interface tem exatamente um método, count(), que retorna o valor retornado para função count().

Por favor, veja a sessão Array do manual para uma explicação mais detalhada sobre como os arrays são implementados e utilizados no PHP.

Parâmetros

var

The array.

mode

Se o parâmetro opcional mode for COUNT_RECURSIVE (ou 1), a função count() irá recursivamente contar a matriz. Isto é particularmente util para contar elementos em matriz multidimensional. O valor padrão para mode é 0. count() não detecta infinita recursão.

Valor Retornado

Retorna o número de elementos em var, que normalmente é um array, pois qualquer outra coisa terá somente um elemento.

Se var não for um array ou um objeto, com a interface Countable implementada, 1 será retornado. Há uma exceção, se var é NULL, 0 é retornado.

Cuidado

count() pode retornar 0 para uma variável que não existe, mas também pode retornar 0 para uma variável que tenha sido inicializada como um array vazio. Use isset() para checar se a variável existe.

Changelog

Versão Descrição
4.2.0 O parâmetro opcional mode foi adicionado.

Exemplos

Exemplo #1 Exemplo da função count()

<?php
$a
[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result count($a);
// $result == 3

$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result count($b);
// $result == 3

$result count(null);
// $result == 0

$result count(false);
// $result == 1
?>

Exemplo #2 Uso recursivo da função count()

<?php
$comidas 
= array('frutas'  => array('laranja''banana''maçã'),
'veggie'  => array('cenoura''couve','ervilha'));
// contagem recursiva
echo count($comidasCOUNT_RECURSIVE);  // mostra 8
// contagem normal
echo count($comidas);                   // mostra 2
?>

Veja Também

  • is_array() - Verifica se a variável é um array
  • isset() - Informa se a variável foi iniciada
  • strlen() - Retorna o tamanho de uma string



current> <compact
[edit] Last updated: Thu, 23 May 2013
 
add a note add a note User Contributed Notes count - [8 notes]
up
2
meathanjay at gmail dot com
5 days ago
<?php
//PHP count function

$arr=array("hasan"=>array("Name"=>"Hasan Al Mamun","Address"=>"Uttara, Dhaka","Profession"=>"Web Developer"),
      
"meathanjay"=>array("Name"=>"Meathanjay","Address"=>"Nawabgonj, Dhaka","Profession"=>"Nothing")
    );
echo
count($arr);
//Output  2

$arr=array("hasan"=>array("Name"=>"Hasan Al Mamun","Address"=>"Uttara, Dhaka","Profession"=>"Web Developer"),
      
"meathanjay"=>array("Name"=>"Meathanjay","Address"=>"Nawabgonj, Dhaka","Profession"=>"Nothing")
    );
echo
count($arr,1);
//Output  8 when second Parameter true
up
9
danny at dannymendel dot com
5 years ago
I actually find the following function more useful when it comes to multidimension arrays when you do not want all levels of the array tree.

// $limit is set to the number of recursions
<?php
function count_recursive ($array, $limit) {
   
$count = 0;
    foreach (
$array as $id => $_array) {
        if (
is_array ($_array) && $limit > 0) {
           
$count += count_recursive ($_array, $limit - 1);
        } else {
           
$count += 1;
        }
    }
    return
$count;
}
?>
up
4
alexandr at vladykin dot pp dot ru
6 years ago
My function returns the number of elements in array for multidimensional arrays subject to depth of array. (Almost COUNT_RECURSIVE, but you can point on which depth you want to plunge).

<?php
 
function getArrCount ($arr, $depth=1) {
      if (!
is_array($arr) || !$depth) return 0;
        
    
$res=count($arr);
        
      foreach (
$arr as $in_ar)
        
$res+=getArrCount($in_ar, $depth-1);
     
      return
$res;
  }
?>
up
1
atoi_monte at hotmail dot com
5 years ago
Please note: While SPL is compiled into PHP by default starting with PHP 5, the Countable interface is not available until 5.1
up
-7
jezdec at email dot cz
4 years ago
Hi there,
there is a simple script with example for counting rows and columns of a two-dimensional array.

<?php
$data
= array(
   
"apples" =>
        array(
"red", "yellow", "pineapples"),
   
"bananas" =>
        array(
"small", "medium", "big"),
   
"vegs" =>
        array(
"potatoes", "carrots", "onions")
);

$rows = count($data,0);
$cols = (count($data,1)/count($data,0))-1;
print
"There are {$rows} rows and {$cols} columns in the table!";
?>
up
-20
freefaler at gmail dot com
8 years ago
If you want to count only elements in the second level of 2D arrays.A close to mind note, useful for multidimentional arrays:

<?php
$food
= array('fruits' => array('orange', 'banana', 'apple'),
            
'veggie' => array('carrot', 'collard','pea'));

// recursive count
echo count($food,COUNT_RECURSIVE);  // output 8

// normal count
echo count($food);                  // output 2

// all the fruits and veggies
echo (count($food,COUNT_RECURSIVE)-count($food,0)); //output 6
?>
up
-22
nicolas dot grekas+php at gmail dot com
1 year ago
As of PHP 5.2.6, count() DOES detect infinite recursion.
It triggers a warning when its argument is a recursive array.
up
-4
vivekanand dot pathak25 at gmail dot com
8 days ago
<php
 function CountArray($arr){
     $i=0;
    foreach($arr as $val){
      $i++;
    }
       return $i;
 }

$arr=array(1,2,3,4,5,6,7,8,9);
echo CountArray($arr);   // output 9
?>

 
show source | credits | sitemap | contact | advertising | mirror sites