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: Fri, 17 May 2013

view this page in

count

(PHP 4, PHP 5)

countCuenta todos los elementos de un array o en un objeto

Descripción

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

Cuenta todos los elementos en un array o en un objeto.

En objetos, si se tiene SPL instalado, se puede conectar a count() implementado el interfaz Countable. Este interfaz tiene solamente un método, Countable::count(), el cual devuelve el valor retornado de la función count().

Por favor ver la sección del manual Array para una explicación más extensa de como se implementan y usan los arrays en PHP.

Parámetros

var

El array o el objecto

mode

Si el parámetro opcional mode está definido con la constante COUNT_RECURSIVE (o 1), count() contará el array de forma recursiva. Esto es particularmente útil para contar todos los elementos de un array multidimensional.

Precaución

count() puede detectar recursividad para evitar un bucle infinito, pero lanzará un mensaje E_WARNING cada vez que lo haga (en caso de que el array se contenga a sí mismo más de una vez) y devolverá una cuenta mayor de la que se pueda esperar.

Valores devueltos

Devuelve el número de elementos en var, Si var no es un array o no es un objecto con el interfaz Countable implementado, devolverá 1. Existe una excepción, si var es NULL, devolverá 0.

Precaución

count() devolverá 0 si la variable que se intenta contar no está definida pero también devolverá 0 si la variable contiene un array vacío. Use isset() para comprobar si la variable está definida.

Historial de cambios

Versión Descripción
4.2.0 Se añadió el parámetro opcional mode.

Ejemplos

Ejemplo #1 Ejemplo de 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
?>

Ejemplo #2 Ejemplo de count() recursivo

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

// Count recursivo
echo count($foodCOUNT_RECURSIVE); // muestra 8

// Count normal
echo count($food); // muestra 2

?>

Ver también

  • is_array() - Comprueba si una variable es un array
  • isset() - Determina si una variable está definida y no es NULL
  • strlen() - Obtiene la longitud de un string



current> <compact
[edit] Last updated: Fri, 17 May 2013
 
add a note add a note User Contributed Notes count - [8 notes]
up
2
meathanjay at gmail dot com
3 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
6 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