Más sobre las matrices en PHP: tipos de arrays

Este post se ha leído: 1223 veces

[Matrices en PHP II]

Valencia, 17/03/2011, G.B.
Ya hemos hablado sobre las matrices en PHP pero de una forma muy general. Con las matrices realmente podemos hacer muchas cosas, que ya iremos viendo y descubriendo (yo me incluyo).

Ahora lo que vamos a ver son los distintos tipos de matrices. He basado este post en un tutorial de Webtaller.com. En los ‘créditos’, al final de este post, adjunto el enlace.  Otro interesante enlace al respecto es el siguiente: www.php-es.com/language.types.array.html. Ahora, vamos ‘al tajo’.

Podemos diferenciar entre los dos tipos de matrices existentes:

- Indexada: Son las matrices cuyo acceso a los elementos se realiza por la posición que ocupan dentro de la estructura (empezando siempre desde el cero). Ejemplo: $tipos_matrices[0]
- Asociativa: Matriz en la que los elementos están formados por pares clave-valor y el acceso se realiza proporcionando una determinada clave. Ejemplo: $tipos_matrices['asociativa']

Cómo crear las matrices:

- De forma implícita: consiste en indicar a la matriz el elemento (tanto por su posición o por su clave, tal y como acabamos de indicar).
Un ejemplo:  $gestores_contenido[0]=’Wordpress’;

Si no indicamos la posición de la matriz, el array cogeré el valor siguiente al último valor que haya sido introducido.
Ejemplo: $gestores_contenido[]=’Joomla’ // tomaría como valor 1 ya que el último introducido era el cero (0).

- Mediante array(): Pasamos los elementos como parámetros. Si es una matriz indexada, toman la posición que ocupan en la creación de la matriz. Y si es unaa matriz asociativa, se les asigna su valor mediante “=>”. Ejemplo: $lenguajes=array(‘Tipo’=>’Script’, ‘Nombre’=>’JavaScript’);

PHP no sólo se limita a la existencia de matrices por sí mismo,  sino que existen matrices de matrices, o lo que es lo mismo, matrices multidimensionales. Ejemplo: $gestores_contenido[2]['PHPLD']

Cómo recorrer una matriz

Existen varias herramientas para poder acceder a los elementos de una matriz. Siempre se  mantiene una referencia del elemento de la matriz al que se tiene acceso. Por ello,  para recorrer una matriz sólo tendremos que modificar dicha referencia. En caso de una matriz indexada el recorrido se realizará mediante un bucle. Para ello debemos saber el número de elementos totales de los que dispone la matriz. Para ello nos basamos de una función denominada count (variable),  donde el parámetro variable representa la variable de la que se quiere obtener el número de elementos. Si variable es una matriz, devuelve el número de elementos que tiene. Nos devolverá 1 si sólo tiene un elemento (aunque no sea matriz) y 0 si no tiene ningún valor.

Otra función que nos permite saber el número de elementos es sizeof (matriz) .

Para acceder a los elementos de una matriz asociativa debemos usar la función each() que recupera el par formado por clave y valor y además avanza una posición de puntero. Su sintaxis es each (matriz). Para entender mejor la sintaxis de each, echadle un ‘vistacillo’ a  este post: tomatoma.wordpress.com/manual-de-php/4-matrices-for-each/

La función que realiza el constructor list (variable1,variable2…variableN) es asignar los valores del elemento actual de una matriz a las variables indicadas como parámetro.

NOTA: Me queda pendiente poner los ejemplos. Prometido… 


Bibliografía recomendada:

Este post se ha leído: 1223 veces

Artículos relacionados:

¡Hola, Aprendiendo PHP!
Estructuras condicionales en PHP III: if...else
Un ejemplo del uso de condicionales en WordPress


¿Te ha gustado este post? Entonces puedes dejar un comentario abajo y seguir la conversación, o también suscribirte a mi feed y obtener artículos como este enviados a tu lector favorito de feeds. Muchas gracias por tu interés!

Comentarios

prometido lo de los ejemplos mi amigo los estamos esperando

Lo siento, César, tienes toda la razón, pero he tenido que parar este sitio. Sencillamente, no puedo con todo. Si lo retomo, lo tendré muy en cuenta. Mil disculpas y un saludo,

Guillremo

Deja un Comentario

(requerido)

(requerido)