Post sencillo para ver la función PHP count(), esta función ya la he usado anteriórmente en un ejemplo de la función PHP simpleXML.
La definición de esta función de PHP es:
PHP count() cuenta todos los elementos en un array o en un objeto
Quizás os parezcan interesantes estas otras funciones para manejar arrays: PHP foreach(), PHP array_push(), shuffle() y unset(), count() también tiene un alias llamado sizeof().
Aunque en un post pasado ya comenté el manejo básico de arrays en PHP, voy a complementar ahora dicho post haciendo un ejemplo para contar el número de elementos en un array.
La sintaxis de esta función según su web oficial es:
count ($objeto, $modo)
Tal y como veis la sintaxis es sencilla:
En este primer ejemplo voy a contar el número de elementos que hay en un array con PHP count():
$pilotos=array( "Ferrari"=>array("Alonso","Kimi"), "Mercedes"=>array("Hamilton","Rosberg") ); echo "Número de pilotos, contando de manera no recursiva: " . count($pilotos); echo "Número de pilotos, contando de manera recursiva: " . count($pilotos,1);
En el código superior tenemos un array bidimensional con 2 escuderías de F1 y sus pilotos.
Segundo ejemplo para obtener de una manera sencilla el número de nodos de un XML. Este ejemplo lo he cogido del post ‘PHP simpleXML: Leer y parsear los nodos, atributos y namespaces de un XML‘.
La estructura del XML es la siguiente:
<?xml version='1.0' encoding='UTF-8'?> <nodo_padre> <nodo_hijo> <valor>valor1</valor> </nodo_hijo> <nodo_hijo> <valor>valor2</valor> <valor>valor3</valor> <valor>valor4</valor> </nodo_hijo> </nodo_padre>
Con este código vamos a sacar el número de ‘nodos_hijos’:
$xml = simplexml_load_file("017-php-simplexml03.xml"); echo "El número de nodos con nombre 'nodo_hijo' es: " . count($xml->nodo_hijo); echo "El número de nodos con nombre 'valor' del primer 'nodo_hijo' es: " . count($xml->nodo_hijo->valor); echo "El número de nodos con nombre 'valor' del 2º 'nodo_hijo' es: " . count($xml->nodo_hijo[1]->valor);
Explico el código:
Si necesitamos automatizar el recuento de nodos… He preparado este código para contar el número de nodos ‘valor’ dentro de los nodos ‘nodo_hijo’.
$xml = simplexml_load_file("017-php-simplexml03.xml"); foreach ($xml->nodo_hijo as $nodo) { echo count($nodo->valor). "<br>"; }
Podéis verlo funcionando en la misma url del segundo ejemplo anterior.
Os recomiendo leer este otro post sobre funciones para trabajar con arrays en PHP.