Hola a tod@s,

Hoy continuamos con nuestro curso que dejamos el miércoles pasado con su quinta entrega, Desarrollo Web con PHP y MySQL (V), donde estuvimos viendo como se trabaja con las cadenas de caracteres (strings) en PHP.

A parte de la teoría, vimos en que se diferenciaba la utilización de las comillas simples y comillas dobles a la hora de definir los valores de las variables de tipo string y unas cuantas funciones muy interesantes que nos permitían dar un formato específico a las cadenas como nl2br(), strtok() o substr().

En el ejemplo que vimos, envío de un formulario, aplicamos las funciones que habíamos visto y pudimos comprobar cómo trabajaba PHP con cadenas de forma práctica.

Hoy continuaremos con el estudio y la utilización de Matrices (o Arrays) en PHP.

¡Ánimo!

Siguiendo con la numeración del curso, continuamos con el capítulo 8.

8. Arrays

Los arrays, matrices o también nombradas listas (nosotros utilizaremos el nombre “array“), son una colección de múltiples valores reunidos en una sola variable. Esto nos será muy útil para crear listas de valores del mismo tipo.

Por ejemplo, si deseamos guardar muchos datos de tipo número, por ejemplo todos los días de un mes, hasta ahora teníamos que crear una variable para cada valor. Pero con los arrays, podemos crear una variable del tipo numérica que contenga, por ejemplo, 100 valores distintos (como una lista de números).

8.1 Crear un array

Para crear un array en PHP, utilizaremos la función array().

Los índices de los arrays comienzan automáticamente por 0 (cero), a menos que se indique lo contrario.

En el ejemplo anterior del array $lista:

  • ‘verdura’ ->  índex 0
  • ‘carne’    ->  índex 1
  • ‘fruta’      ->  índex 2

Si queremos asignar nosotros mismos el valor del índice de cada elemento del array, lo que debemos hacer es poner antes de cada elemento el número del índice que deseamos y seguido del símbolo “=>“:

En este caso el array $lista tendrá estos índices:

  • ‘verdura’ -> índex 1
  • ‘carne’    -> índex 2
  • ‘fruta’      -> índex 3

También podemos escribir así (se lee mejor el código fuente PHP):

8.2 Agregar elementos a un array

Una vez creado el array, podemos añadirle de forma directa nuevos elementos. Podemos, o no, indicar el índice de la posición del nuevo elemento dentro del array.

Si NO lo hacemos, se continúa con el índice de forma secuencial, teniendo en cuenta su último valor.

Si le indicamos el índice, simplemente le indicamos el índice entre los corchetes:

Los índices no únicamente deben ser números, sino que pueden ser otras cadenas de texto:

8.3 Imprimir un array

PHP tiene una función print_r() que nos permite visualizar como está almacenada un determinado array.

8.4 Acceder a los valores de un array

Para poder extraer el valor de un elemento de un array, lo haremos de la siguiente forma:

$nombre_de_array[índice_a_mostrar]

8.5 Eliminar un array, o alguno de sus elementos

Para eliminar arrays, utilizaremos la función unset().

Esta función unset(), elimina la variable y libera la memoria utilizada por dicha variable.

Para eliminar un elemento del array

Usaremos esta forma:

unset($variableArray[índice_a_borrar])

Si volviésemos a insertar un elemento que hemos eliminado con unset(), por ejemplo,  en el índice 1, éste no lo coloca en ese índice, sino al final del array.

Reiniciar o borrar todos los valores de un array

También podemos borrar todos los elementos de un array, y así, quedar vacía.

Usaremos esta nomenclatura:

$variableArray = array(); //Vacía todo el array

8.6 Combinar arrays

PHP tiene una función que nos permite combinar 2 o más arrays usando array_merge().

Con esta función, PHP nos permite introducir uno de los 2 arrays dentro del otro.

Usaremos esta nomenclatura:

array_merge($array1,$array2); //array2 se inserta dentro del array1

Pero que pasa, si en el ejemplo anterior el array $fin_de_semana, ¿tuviese cadenas como índices?

¿Y si tanto $entre_semana y $fin_de_semana tuviesen índices de cadenas y tuviesen 2 índices iguales?

8.7 Crear arrays multidimensionales

Hasta ahora los arrays que hemos visto son unidimensionales, es decir, de una dimensión.

Pero con PHP también podemos crear arrays multidimensionales, es decir, arrays que tengan más de una dimensión.

O dicho de otra forma, un array que cada elemento suyo es otro array diferente.

A ver si con este ejemplo se entiende mejor, ya que es un concepto bastante abstracto:

8.8 Acceder a elementos de arrays multidimensionales

Para acceder a los elementos de un array multidimensional se sigue esta nomenclatura:

$array1[índice1][índice2]

Por ejemplo usando el ejemplo anterior:

8.9 Ordenar arrays

PHP dispone de una serie de funciones para ordenar arrays:

  • sort(): Ordena los valores de las arrays sin mantener sus índices.

  • rsort(): Hace lo mismo que sort(), pero ordena de forma inversa (rsort -> reverse sort).

  • asort(): Ordena los valores del array pero mantiene la relación índice=valor.

  • arsort(): Hace lo mismo que asort() pero de forma inversa (arsort = asort reverse).

  • ksort(): Ordena los índices manteniendo la correlación índice=Valor. Es útil cuando los índices son caracteres.

  • krsort(): Ordena de la misma forma que ksort() pero de forma inversa (krsort=ksort reverse).

8.10 Tranformaciones entre cadenas y arrays

PHP tiene unas funciones específicas que hacen el trabajo de convertir cadenas de caracteres a arrays i a la inversa.

Las funciones son:

  • implode(): Convierte un array en una cadena.

  • explode(): Convierte una cadena a un array

8.11  Validar formularios con selección múltiple

Cuando tenemos un formulario HTML y un campo SELECT de selección múltiple, podemos capturar los datos que hemos seleccionado en HTML y mostrarlos en PHP como si fuesen arrays.

HTML

PHP

8.12 Contar elementos de un array

PHP tiene una función que retorna el número de valores (elementos) que tenemos en un array.

Esta función es count().

Siguiendo con el ejemplo anterior:

      8.13 Ejemplo de envío de formulario

Ahora vamos a realizar un ejemplo bastante parecido al de la anterior entrega. Pero ahora añadiendo mejoras en el código y aplicando las funciones aprendidas en este capítulo del curso sobre arrays.

envia_prueba_funciones.html

procesa_prueba_funciones.php

Hasta aquí esta parte del curso Desarrollo Web con PHP y MySQL. La semana próxima iremos incrementando todavía más la complejidad de nuestro código PHP con el estudio y trabajo de Estructuras de control de flujo (tipos, definición, uso) e iremos viendo de forma progresiva todas y cada una de estas estructuras y algunas funciones nuevas para validar más datos en formularios HTML.

Hasta entonces un saludo a tod@s y no os olvidéis dejar vuestros comentarios o incidencias sobre el curso.

¡Ánimo!

Info | PHP.NET

Curso | Desarrollo Web con PHP y MySQL