You are on page 1of 5

Programación Avanzada

Creación de tablas por medio de variables tipo array.
Un array es una variable que está compuesta de varios elementos cada uno de ellos catalogado dentro de ella misma
por medio de una clave.
Ejemplo: Array sentido
$sentido[1]!ver!"
$sentido[#]!tocar!"
$sentido[$]!oir!"
$sentido[%]!gustar!"
$sentido[&]!oler!"
En este caso este array cataloga sus elementos' com(nmente llamados valores' por n(meros. )os n(meros del 1 al &
son por lo tanto las claves y los sentidos son los valores asociados. *ada nos impide emplear nombres +cadenas, para
clasi-icarlos. )o (nico que deberemos .acer es entrecomillarlos:
/0p.p
$moneda[!espana!]!1eseta!"
$moneda[!-rancia!]!2ranco!"
$moneda[!usa!]!3olar!"
04
5tra -orma de de-inir id6nticamente este mismo array y que nos puede ayudar para la creaci7n de arrays más complejos
es la siguiente sinta8is:
/0p.p
$monedaarray+!espana!4 !1eseta!'!-rancia! 4 !2ranco!'!usa! 4 !3olar!,"
04
Una -orma muy práctica de almacenar datos es mediante la creaci7n de arrays multidimensionales +tablas,. 1or
ejemplo: 9ueremos almacenar dentro de una misma tabla el nombre' moneda y lengua .ablada en cada pa:s. 1ara
.acerlo podemos emplear un array llamado pa:s que vendrá de-inido por estas tres caracter:sticas +claves,. 1ara
crearlo' deber:amos escribir una e8presi7n del mismo tipo que la vista anteriormente en la que meteremos una array
dentro del otro. Este proceso de incluir una instrucci7n dentro de otra se llama anidamiento:
/0p.p
$paisarray
+
!espana! 4array
+
!nombre!4!Espa;a!'
!lengua!4!<astellano!'
!moneda!4!1eseta!
,'
!-rancia! 4array
+
!nombre!4!2rancia!'
!lengua!4!2ranc6s!'
!moneda!4!2ranco!
,
,"
ec.o $pais[!espana!][!moneda!] ==>aca en pantalla: !1eseta!
04
?uc.as son las -unciones propuestas por 1@1 para el tratamiento de arrays' entre ellas tenemos:
Función Descripción
arrayAvalues +miAarray, )ista los valores contenidos en miAarray
asort+miAarray, y arsort+miAarray,
5rdena por orden al-ab6tico directo o inverso en -unci7n de los
valores
count+miAarray, *os da el numero de elementos de nuestro array
3ocente: Bng. Ciuliana 2iorella )ecca 5rrego 1
Programación Avanzada
Dsort+miAarray, y Drsort+miAarray,
5rdena por orden al-ab6tico directo o inverso en -unci7n de las
claves
list +$variable1' $variable#...,miAarray Asigna cada una variable a cada uno de los valores del array
ne8t+miAarray,' prev+miAarray,' reset+miAarray, y
end+miAarray,
*os permiten movernos por dentro del array con un puntero .acia
delante' atras y al principio y al -inal.
eac.+miAarray,
*os da el valor y la clave del elemento en el que nos
encontramos y mueve al puntero al siguiente elemento.
3e gran utilidad es tambi6n el bucle foreach que recorre de -orma secuencial el array de principio a -in.
FUNCIONES !"IC#S DE$ %#&#'O CON #%%#(S
)odificar el n*mero de elementos de un array
A.ora vamos a ver varios ejemplos mediante los cuales nuestros arrays pueden aumentar o reducir el n(mero de
casillas disponibles.
%educir el tama+o de un array
array,slice-.
1ara disminuir el n(mero de casillas de un arreglo tenemos varias -unciones. Entre ellas' arrayAslice+, la utiliEamos
cuando queremos recortar algunas casillas del arreglo' sabiendo los :ndices de las casillas que deseamos conservar.
Fecibe tres parámetros. El array' el :ndice del primer elemento y el n(mero de elementos a tomar' siendo este (ltimo
parámetro opcional.
En el ejemplo siguiente tenemos un array con cuatro nombres propios. En la primera ejecuci7n de arrayAslice+, estamos
indicando que deseamos tomar todos los elementos desde el :ndice G +el principio, .asta un n(mero total de $
elementos.
El segundo arrayAslice+, indica que se tomen todos los elementos a partir del :ndice 1 +segunda casilla,.
/0p.p
$entrada array +!?iguel!' !1epe!' !Huan!' !Hulio!' !1ablo!,"
==modi-ico el tama;o
$salida arrayAslice +$entrada' G' $,"
==muestro el array
-oreac. +$salida as $actual,
ec.o $actual . !/br4!"
ec.o !/p4!"
==modi-ico otra veE
$salida arrayAslice +$salida' 1,"
==muestro el array
-oreac. +$salida as $actual,
ec.o $actual . !/br4!"
04
Iendrá como salida:
?iguel
1epe
Huan
1epe
Huan
array,shift-.
Esta -unci7n e8trae el el primer elemento del array y lo devuelve. Además' acorta la longitud del array eliminando el
elemento que estaba en la primera casilla. >iempre .ace lo mismo' por tanto' no recibirá más que el array al que se
desea eliminar la primera posici7n.
3ocente: Bng. Ciuliana 2iorella )ecca 5rrego #
Programación Avanzada
En el c7digo siguiente se tiene el mismo vector con nombres propios y se ejecuta dos veces la -unci7n arrayAs.i-t+,
eliminando un elemento en cada ocasi7n. >e imprimen los valores que devuelve la -unci7n y los elementos del array
resultante de eliminar la primera casilla.
/0p.p
$entrada array +!?iguel!' !1epe!' !Huan!' !Hulio!' !1ablo!,"
==quito la primera casilla
$salida arrayAs.i-t +$entrada,"
==muestro el array
ec.o !)a -unci7n devuelve: ! . $salida . !/br4!"
-oreac. +$entrada as $actual,
ec.o $actual . !/br4!"
ec.o !/p4!"
==quito la primera casilla' que a.ora ser:a la segunda del array original
$salida arrayAs.i-t +$entrada,"
ec.o !)a -unci7n devuelve: ! . $salida . !/br4!"
==muestro el array
-oreac. +$entrada as $actual,
ec.o $actual . !/br4!"
04
3a como resultado:
)a -unci7n devuelve: ?iguel
1epe
Huan
Hulio
1ablo
)a -unci7n devuelve: 1epe
Huan
Hulio
1ablo
unset-.
>e utiliEa para destruir una variable dada. En el caso de los arreglos' se puede utiliEar para eliminar una casilla de un
array asociativo +los que no tienen :ndices num6ricos sino que su :ndice es una cadena de caracteres,.
Jeamos el siguiente c7digo para conocer c7mo de-inir un array asociativo y eliminar luego una de sus casillas.
/0p.p
$estadiosA-utbol array+!Karcelona!4 !*ou <amp!'!Feal ?adrid! 4 !>antiago Kernabeu!'!Jalencia! 4
!?estalla!'!Feal >ociedad! 4 !Anoeta!,"
==mostramos los estadios
-oreac. +$estadiosA-utbol as $indice4$actual,
ec.o $indice . ! LL ! . $actual . !/br4!"
ec.o !/p4!"
==eliminamos el estadio asociado al real madrid
unset +$estadiosA-utbol[!Feal ?adrid!],"
==mostramos los estadios otra veE
-oreac. +$estadiosA-utbol as $indice4$actual,
ec.o $indice . ! LL ! . $actual . !/br4!"
04
)a salida será la siguiente:
3ocente: Bng. Ciuliana 2iorella )ecca 5rrego $
Programación Avanzada
Karcelona LL *ou <amp
Feal ?adrid LL >antiago Kernabeu
Jalencia LL ?estalla
Feal >ociedad LL Anoeta
Karcelona LL *ou <amp
Jalencia LL ?estalla
Feal >ociedad LL Anoeta
#umentar el tama+o de un array
Ienemos tambi6n a nuestra disposici7n varias -unciones que nos pueden ayudar a aumentar el n(mero de casillas de
un arreglo.
array,push-.
Bnserta al -inal del array una serie de casillas que se le indiquen por parámetro. 1or tanto' el n(mero de casillas del array
aumentará en tantos elementos como se .ayan indicado en el parámetro de la -unci7n. 3evuelve el n(mero de casillas
del array resultante.
Jeamos este c7digo donde se crea un arreglo y se a;aden luego tres nuevos valores.
/0p.p
$tabla array +!)agartija!' !Ara;a!' !1erro!' !Cato!' !Fat7n!,"
==aumentamos el tama;o del array
arrayApus.+$tabla' !Corri7n!' !1aloma!' !5so!,"
-oreac. +$tabla as $actual,
ec.o $actual . !/br4!"
04
3a como resultado esta salida:
)agartija
Ara;a
1erro
Cato
Fat7n
Corri7n
1aloma
5so
array,mer/e-.
A.ora vamos a ver c7mo unir dos arrays utiliEando la -unci7n arrayAmerge+,. A 6sta se le pasan dos o más arrays por
parámetro y devuelve un arreglo con todos los campos de los vectores pasados.
En este c7digo de ejemplo creamos tres arrays y luego los unimos con la -unci7n arrayAmerge+,
/0p.p
$tabla array +!)agartija!' !Ara;a!' !1erro!' !Cato!' !Fat7n!,"
$tabla# array +!1#!'!$%!'!%&!'!&#!'!1#!,"
$tabla$ array +!>auce!'!1ino!'!*aranjo!'!<.opo!'!1erro!'!$%!,"
==aumentamos el tama;o del array
$resultado arrayAmerge+$tabla' $tabla#' $tabla$,"
-oreac. +$resultado as $actual,
ec.o $actual . !/br4!"
04
3a como resultado:
)agartija
Ara;a
1erro
3ocente: Bng. Ciuliana 2iorella )ecca 5rrego %
Programación Avanzada
Cato
Fat7n
1#
$%
%&
&#
1#
>auce
1ino
*aranjo
<.opo
1erro
$%
Una (ltima cosa. Iambi6n pueden introducirse nuevas casillas en un arreglo por los m6todos .abituales de asignar las
nuevas posiciones en el array a las casillas que necesitemos.
En arrays normales se .ar:a as::
$tabla array +!>auce!'!1ino!'!*aranjo!,"
$tabla[$]!Algarrobo!"
En arrays asociativos:
$estadiosA-utbol array+!Jalencia! 4 !?estalla!'!Feal >ociedad! 4 !Anoeta!,"
$estadiosA-utbol[!Karcelona!] !*ou <amp!"
3ocente: Bng. Ciuliana 2iorella )ecca 5rrego &