2011-09-28 13 views
8

¿Podría alguien explicarme por favor cómo funciona la función de conteo con arreglos como el siguiente?Función PHP Count con Matriz Asociativa

Mi pensamiento sería el siguiente código a la salida 4, porque hay 4 elementos: allí

$a = array 
(
    "1" => "A", 
    1=> "B", 
    "C", 
    2 =>"D" 
); 

echo count($a); 

Respuesta

26

count funciona exactamente como era de esperar, por ejemplo, es counts all the elements in an array (or object). Sin embargo, su suposición sobre la matriz que contiene cuatro elementos está mal:

  • "1" es igual a 1, por lo que se sobreponen a 1 => "B""1" => "A".
  • porque ha definido 1, el siguiente índice numérico será 2, p. "C" es 2 => "C"
  • cuando asignó 2 => "D" sobrescribió "C".

Así que la matriz sólo contendrá 1 => "B" y 2 => "D" y por eso da count 2. Usted puede verificar esto es cierto al hacer print_r($a). Esto dará

Array 
(
    [1] => B 
    [2] => D 
) 

Vuelva a pasar por http://www.php.net/manual/en/language.types.array.php.

5

Puede utilizar este ejemplo para entender cómo funciona el recuento con matrices recursivas

<?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 

?> 

Source

1

La matriz de haber creado sólo tiene dos elementos que lo integran, por tanto, el recuento regresan 2. Está sobrescribiendo los elementos , para ver cuál es tu matriz usa:

print_r($a); 
Cuestiones relacionadas