You are on page 1of 3

Programación en PHP

Introducción
Los arreglos son una recolección de datos en una misma variable, por ejemplo un arreglo de los dias de la
semana podría ser así:
$Dias = array('Lunes','Martes','Miércoles','Jueves','Viernes','Sábado','Domingo'!
Ahora bien, si deseamos imprimir un contenido seria, por ejemplo:
ec"o #$oy es #%$Dias&'(%# y ma)ana sera #%$Dias&*(!
Lo cual imprime:
$oy es Miércoles y ma)ana sera Jueves
Asi pues podemos notar que el arreglo comienza a recorrerse a partir de la dirección 0, es decir Dias[0
corresponde a !Lunes! " Dias[# corresponde a !Domingo!$
%i deseamos imprimir todos los días de la semana podríamos hacerlo en un ciclo utilizando una variable
bandera &i&, ejemplo:
+or ($i=,!$i-=.!$i//
ec"o $Dias&$i(%#,# !
Lo cual imprimiria:
Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo
'(isten varias )ormas de de)inir una variable como arra" *o un valor+$ Las m,s comunes son:
$variable = array(
'indice' =0 'valor',
'valor', 11 Si se omite el 2ndice el valor es el 3rimer n4mero natural no
usado (de , a in+inito
!
$variable&( = 'valor'!
$variable&'indice'( = 'valor'!
-a" que recordar que al escribir dos veces un mismo índice del arra", los datos se sobreescriben:
$array = array(
'valor5del5indice5,'
!
var5dum3($array!
$array&,( = 'valor5nuevo'!
var5dum3($array!
Los ejemplos anteriores acceden mediante un índice a los elementos del arra"$ .-. permite adem,s acceder "
modi)icar los arra"s por m/todos alternativos que pueden ser mucho m,s convenientes en determinadas
ocasiones$
Utilizando arrays como pilas
.ara a0adir un elemento al )inal del arra" utilizamos la )unción arra"1push " para leer " eliminar el 2ltimo
elemento a0adido utilizamos la )unción arra"1pop$ 'sto nos permite p$ej, utilizar un arra" como una pila para
almacenar el estado intermedio de una operación:
-63"3
$3ila = array(!
array53us"($3ila,#7n #!
array53us"($3ila,#8#!
array53us"($3ila,#Mundo#!
array53us"($3ila,#$ola #!
array53us"($3ila,#9#!
3rint array53o3($3ila!
3rint array53o3($3ila!
3rint array53o3($3ila!
3rint array53o3($3ila!
3rint array53o3($3ila!
60
La salida ser, similar a:
9$ola Mundo8
Arrays como diccionarios (tablas Hash)
Al igual que en las tablas de una base de datos muchas veces conviene inde(ar por una cadena de te(to en
vez de por un índice entero de )orma que podemos buscar p$ej, el nombre de una persona a partir de su
identi)icador )iscal$ %upongamos que tenemos la siguiente tabla:
:denti+icador; <ombre
=iscal ;
=======================
,,,,,,,,> ; =ernando
,,,,,,,,' ; Marta
,,,,,,,,* ; ?l+onso
.ara representar la misma mediante un arra" .-.:
-63"3
$bbdd = array(!
$bbdd&#,,,,,,,,>#(=#=ernando#!
$bbdd&#,,,,,,,,'#(=#Marta#!
$bbdd&#,,,,,,,,*#(=#?l+onso#!
3rint $bbdd&#,,,,,,,,*#(!
60
3n ejemplo ligeramente m,s complejo$ %upongamos que la tabla tiene varias columnas:
:denti+icador; <ombre ;?3ellido>;?3ellido';@dad;
=iscal ; ; ; ; ;
=================================================
,,,,,,,,> ; =ernando;Aenito ;?lcantara; B* ;
,,,,,,,,' ; Marta ;?benia ;Carrasco ; '* ;
,,,,,,,,* ; ?l+onso ;Cordero ;Cam3o ; DB ;
'ntonces puesto que nada impide que un elemento de un arra" sea a su vez otro arra":
-63"3
$bbdd = array(!
$bbdd&#,,,,,,,,>#(=array(#=ernando#,#Aenito #,#?lcantara#,#B*#!
$bbdd&#,,,,,,,,'#(=array(#Marta #,#?benia #,#Carrasco #,#'*#!
$bbdd&#,,,,,,,,*#(=array(#?l+onso #,#Cordero#,#Cam3o #,#DB#!
3rint5r($bbdd&#,,,,,,,,*#(!
60
La salida del script ser, similar a:
?rray
(
&,( =0 ?l+onso
&>( =0 Cordero
&'( =0 Cam3o
&*( =0 DB

A la hora de crear4inicializar4de)inir el arra" podemos tambi/n utilizar la sinta(is:
array(#clave>#=0#valor>#,#clave'#=0#valor'#,#clave*#=0#valor*#,%%%
lo cual nos permite mejorar el ejemplo anterior:
-63"3
$bbdd = array(!
$bbdd&#,,,,,,,,>#(=array(#<ombre#=0#=ernando#,#?3ellido>#=0#Aenito
#,#?3ellido'#=0#?lcantara#,#@dad#=0#B*#!
$bbdd&#,,,,,,,,'#(=array(#<ombre#=0#Marta #,#?3ellido>#=0#?benia
#,#?3ellido'#=0#Carrasco #,#@dad#=0#'*#!
$bbdd&#,,,,,,,,*#(=array(#<ombre#=0#?l+onso
#,#?3ellido>#=0#Cordero#,#?3ellido'#=0#Cam3o #,#@dad#=0#DB#!
3rint5r($bbdd&#,,,,,,,,*#(!
3rint(#@dadE#%$bbdd&#,,,,,,,,*#(&#@dad#(!
60
La salida entonces ser, similar a:
?rray
(
&<ombre( =0 ?l+onso
&?3ellido>( =0 Cordero
&?3ellido'( =0 Cam3o
&@dad( =0 DB

@dadEDB