Arreglos ( arrays )
Capitulo 5
Los arreglos o matrices forman una parte muy
importante de la programación ya que permite manejar
grupos de valores relacionados, nos permiten
almacenar múltiples valores en una sola estructura y,
de esta forma asociarlos en un mismo conjunto o
denominación.
Un arreglo esta formado por una colección de pares
llave – valor, particularmente en php las llaves pueden
ser de tipo cadena o entero( en otros lenguajes solo
pueden ser enteros ). Si las llaves son numéricas el
primer valor es 0 y no 1 como se podría suponer.
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Nombre del arreglo ( Note que todos los elementos del
arreglo tienen el mismo nombre)
Elementos del arreglo ( note que la
llave comienza en 0 y no en 1)
Modelo de un arreglo en
memoria
Posición numérica ( llave o
índice )del elemento dentro del
arreglo c.
c[ 0 ]
-45
c[ 1 ]
6
c[ 2 ]
0
c[ 3 ]
72
c[ 4 ]
50
c[ 5 ]
-3
c[ 6 ]
5
c[ 7 ]
120
c[ 8 ]
12354
c[ 9 ]
1
c[ 10 ]
0
Valor
contenido en
elemento con
llave n
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Existen varias formas de crear arreglos. La mas sencilla consiste en
asignar el valor de cada elemento de manera explicita.
<?php
?>
$arreglo [ 0 ] = 1;
$arreglo [ 1 ] = 2;
$arreglo [ 2 ] = 3;
$arreglo [ 3 ] = 4;
$arreglo [ 4 ] = 5;
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Ejemplo 5.1a
Crear un arreglo de tamaño 4 en el cual se guardaran los valores del 1 al 4.
Ejecutar
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Es poco practico asignar valores a un arreglo y
después imprimirlos uno por uno en ambos casos.
Si tenemos un arreglo de 1000 celdas seria muy
difícil poder mantener tal código utilizando el
ejemplo anterior.
Por lo cual manejaremos bucles para recorrer y
asignar valores a tales estructuras.
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Ejemplo 5.1b
Crear un arreglo de tamaño 4 en el cual se guardaran los valores del 2 al 5.
Ejecutar
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Como recorrer un arreglo
Recorrer un array es relativamente sencillo, ya que esto se
puede lograr a través del uso de un bucle iterando en función del
valor del índice. El problema de este tipo de recorridos es conocer
a priori el numero de elementos que componen el array.
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Supongamos que tenemos un arreglo de tamaño 5 y queremos recorrerlo:
El nombre del arreglo es: Arreglo [ ]
Su tamaño es: 5
El nombre del índice (este ultimo es una variable) que ocuparemos es i.
El valor inicial de i es 0 ( la inicializamos )por lo que el recorrido empezara en la primer celda
del arreglo( ya que podemos recorrer un arreglo de atrás a adelante o solo una parte de el).
La combinación siguiente Arreglo[ i ] nos permitirá recorrer el arreglo, esto se logra porque i es
una variable y puede contener cualquier valor en cualquier momento, en este caso le
sumaremos 1 a el valor actual en cada iteración de i.
LA representación en memoria y los valores de nuestro arreglo es la siguiente :
Arreglo[ 0 ]
Hola
Arreglo[ 1 ]
Php
Arreglo[ 2 ]
programación
Arreglo[ 3 ]
Computación
Arreglo[ 4 ]
UAM
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Como podemos es un arreglo de cadenas de caracteres (strings), los índices son 0,1,2,3,4 los
valores respectivos en cada posición son: hola, Php, programación, computación, UAM
Para poder acceder a cada posición del arreglo tenemos que iterar a través de la variable i,
esto se lograra incrementando en este caso en particular su valor en uno.
Inicialmente:
i=0
Nos encontramos en la posición 0 del arreglo la cual contiene la cadena “hola”. Podemos
modificar esta cadena, remplazarla, copiar su valor a otra variable o simplemente imprimirla.
En este caso la cambiamos por la cadena “adiós”.
Posición 
Arreglo[ 0 ]
Hola
Arreglo[ 1 ]
Php
Arreglo[ 2 ]
programación
Arreglo[ 3 ]
Computación
Arreglo[ 4 ]
UAM
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Incrementamos (o sumamos) i en 1 ( i++ )
i=1
Después de incrementar la variable i nos encontramos en la posición 1 del arreglo la cual
contiene la cadena “Php”. Podemos modificar esta cadena, remplazarla, copiar su valor a
otra variable o simplemente imprimirla. En este caso solo la mostramos en pantalla.
Posición 
Arreglo[ 0 ]
Hola
Arreglo[ 1 ]
Php
Arreglo[ 2 ]
programación
Arreglo[ 3 ]
Computación
Arreglo[ 4 ]
UAM
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Incrementamos i en 1 ( i++ )
i=2
Después de incrementar la variable i nos encontramos en la posición 2 del arreglo la cual
contiene la cadena “programación”. Podemos modificar esta cadena, remplazarla, copiar su
valor a otra variable, imprimirla o todas las acciones anteriores. En este caso solo la
mostramos en pantalla.
Posición 
Arreglo[ 0 ]
Hola
Arreglo[ 1 ]
Php
Arreglo[ 2 ]
programación
Arreglo[ 3 ]
Computación
Arreglo[ 4 ]
UAM
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Incrementamos i en 1 ( i++ )
i=3
Después de incrementar la variable i nos encontramos en la posición 3 del arreglo la cual
contiene la cadena “Computación”. Podemos modificar esta cadena, remplazarla, copiar su
valor a otra variable, imprimirla o todas las acciones anteriores. En este caso solo la
mostramos en pantalla.
Posición 
Arreglo[ 0 ]
Hola
Arreglo[ 1 ]
Php
Arreglo[ 2 ]
programación
Arreglo[ 3 ]
Computación
Arreglo[ 4 ]
UAM
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Incrementamos i en 1 ( i++ )
i=4
Después de incrementar la variable i nos encontramos en la posición 4 del arreglo (la ultima
del arreglo) la cual contiene la cadena “UAM”. Podemos modificar esta cadena, remplazarla,
copiar su valor a otra variable, imprimirla o todas las acciones anteriores. En este caso solo la
mostramos en pantalla. Detenemos el recorrido en el arreglo por que si hacemos algo como
i++ (entonces i vale 5 )luego accedemos al arreglo con la instrucción Arreglo[ i ] ( Arreglo[ 5 ] )
obtendríamos un error de violación de acceso a memoria.
Posición 
Arreglo[ 0 ]
Hola
Arreglo[ 1 ]
Php
Arreglo[ 2 ]
programación
Arreglo[ 3 ]
Computación
Arreglo[ 4 ]
UAM
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Ejemplo 5.2
Obtengamos el código del anterior recorrido a un arreglo.( sin el cambio de
contenidos).
Ejecutar
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Ejemplo 5.3
Obtengamos el código del recorrido anterior a un arreglo. Cambiando el contenido
de todas las celdas que contengan la cadena “Hola” y “programación”.
Ejecutar
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Arreglos multidimencionales
PHP nos permite definir arreglos multidimensionales (también llamados matrices), mediante la
combinación de arrays unidimensionales. Una utilización de este tipo de arreglos es la
representación de tablas de valores.
Por ejemplo la siguiente información sobre el numero de alumnos egresados y aun inscritos en
la UAM en las diferentes ingenierías:
Ingenierías en la UAM
Numero de
Alumnos
Química
Computación
Egresados
100
20
50
Inscritos
200
400
800
Industrial
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
En la tabla anterior podemos ver que tenemos dos dimensiones (filas y columnas) las filas
están relacionadas a los alumnos egresados o inscritos en cada ingeniería y las columnas nos
indican a que ingeniería se refieren tal numero de alumnos.
Podemos hacer el siguiente mapeo según un arreglo o matriz de dos dimensiones en PHP con
2 filas y 3 columnas respecto a lo anterior : Arregló _ celda[ 2 ] [ 3 ]
Ingenierías en la UAM
Numero
de
Alumnos
COLUMNA 0
COLUMNA 1
COLUMNA 2
FILA 0
Arregló _ celda[ 0 ] [ 0 ]
Arregló _ celda[ 0 ] [ 1 ]
Arregló _ celda[ 0 ] [ 2 ]
FILA 1
Arregló _ celda[ 1 ] [ 0 ]
Arregló _ celda[ 1 ] [ 1 ]
Arregló _ celda[ 1 ] [ 2 ]
Subíndice de la fila
Subíndice de la columna
Nombre de la matriz
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
La declaración para este tipo de arreglos es similar a los arreglos unidimensionales y se realiza
de la siguiente forma:
<?php
?>
$arreglo [ 0 ] [ 0 ] = 100;
$arreglo [ 0 ] [ 1 ] = 20;
$arreglo [ 0 ] [ 2 ] = 50;
$arreglo [ 1 ] [ 0 ] = 200;
$arreglo [ 1 ] [ 1 ] = 400;
$arreglo [ 1 ] [ 2 ] = 800;
Lo interesante del ejemplo anterior es observar como va cambiando los valores de las filas y
las columnas en el arreglo.
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Como recorrer un arreglo multidimensional
Para poder recórrelo ocuparemos variables para poder iterar en cada celda de la tabla (como en el
arreglo unidimensional) . En este caso como el arreglo es de dos dimensiones ocuparemos 2
variables índices “i” y “j” una para las filas y otra para las columnas respectivamente.
Las variables serán inicializadas a cero i = 0 y j = 0.
La combinación siguiente tabla[ i ][ j ] nos permitirá recorrer la matriz.
La siguiente figura muestra el recorrido:
COLUMNA 0
COLUMNA 1
i == 1
iIncrementamos
01
jj == 2
00i++
1
incrementamos j++
j++
incrementamos
j++
Reiniciamos j = 0
COLUMNA 2
FILA 0
Primer
Arregló
_ celda[celda
0][0]
Segunda
Arregló
_ celda[ celda
0][1]
Tercer
Arregló
_ celda[celda
0][2]
FILA 1
Arregló
_ celda[celda
1][0]
Cuarta
Arregló
_ celda[
1][1]
Quinta
celda
Arregló
_ celda[celda
1][2]
Sexta
Observe que el valor de la fila no cambia mientras que el numero de columnas no se acabe,
es decir primero se recorren las tres columnas de la primer fila y después las 3 columnas de
la segunda fila.
Este recorrido es el mas común y por tanto es importante Comprenderlo.Como se menciono
anteriormente hay muchas formas de recorrer un arreglo ( para un arreglo multidimencional
hay todavía mas formas ).
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Ejemplo 5.4
Obtengamos el código del recorrido anterior a un arreglo de dos dimensiones.
Ejecutar
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Observaciones
1.
Lo anterior sirve cuando de ante mano sabemos los valores
que tiene que contener el arreglo, pero cuando la información
que se quiere almacenar en el es dinámica lo anterior no sirve.
2.
Además esta modificación la tendría que realizar el
programador directamente en el código del programa y
cualquier otro usuario normal no podría hacerlo.
3.
Por lo cual hay que modificar la manera en introducir el
contenido a un arreglo con ayuda de los formularios de HTML
y bucles para iterar a través del arreglo.
Lo siguiente es justamente aprender como hacerlo.
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Ejemplo practico: llenar un arreglo mediante
formularios
Para poder llenar un arreglo con formularios es necesario saber como se realiza un
formulario con HTML, por lo cual el alumno debe tener un conocimiento previo sobre
formularios aquí solo se expondrán puntos finos sobre ellos.
Solo un recordatorio:
<FORM> </FORM>  Define una zona de la página como formulario.
<INPUT>  Puede ser:
o Campos de entrada por teclado.
o Botones de selección.
o Casillas de marca.
o Botones de proceso.
o Botones de inicialización (reset).
o Imágenes sensibles al ratón.
<SELECT>  puede ser:
o Listas desplegables de valores.
o Listas fijas de valores.
<TEXTAREA>  es una ventanas de escritura libre.
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Ejemplo practico: llenar un arreglo mediante
formularios
Para este ejemplo primero crearemos una pagina html llamada ejemplo5.5 con extensión
html ejemplo “ejemplo5-5.html”. La cual pedirá la carrera, el numero de alumnos egresados
y el numeró de alumnos inscritos para después mandar dicha información a otra pagina la
cual guardara la información en el arreglo. La pagina debe tener la siguiente estructura:
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Ejecutar
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
Comentarios del ejemplo anterior
En la línea 11 se define el formulario observe que se utiliza el método HTTP
usando post para la transferencia de datos.
En este momento no es importante que se entienda que es este método, lo
importante es saber que si no se coloca el método no se podrá transferir
información a la pagina php que procesara tal información, por lo cual este
argumento de la etiqueta form siempre debe estar presente.
En la misma línea se observa en el argumento action en el va la dirección
de la pagina que procesara la información en este caso se llama procesa y
es una pagina php
David García Isario UAM - Azcapotzalco
Arreglos ( arrays )
Capitulo 5
David García Isario UAM - Azcapotzalco
Descargar

Arreglos ( arrays )