
Creació de taules
per mitjà de variables tipus array. Utilitat i funcions útils relacionades.
Un tipus de variable que ja hem descrit però pot ser relativament
complicat a assimilar pel que fa a la majoria són els arrays. Un array és una
variable que està composta de diversos elements cadascun d'ells catalogat
dintre d'ella mateixa per mitjà d'una clau.
En els capítols anteriors posàvem l'exemple d'un array anomenat “sentit”,
que contenia els diferents sentits del ser humà:
|
$sentit[1]="veure" |
|
$sentit[2]="tocar" |
|
$sentit[3]="escoltar" |
|
$sentit[4]="tastar" |
|
$sentit[5]="olorar" |
En aquest cas, aquest array cataloga els seus elements, comunment anomenats
valors, per nombres. Els nombres de l’1 al 5 són per tant les claus i els
sentits són els valors associats. Res ens impedeix emprar noms (cadenes) per a
classificar-los. L'única cosa que haurem de fer és posar-los entre cometes:
|
$moneda["espanya"]="Pesseta"; |
Una altra forma de definir idènticament aquest mateix array i que ens pot
ajudar per a la creació d’arrays més complexos és la següent sintaxi:
|
$moneda=array("espanya"=> "Pesseta","anglaterra"
=> "Lliure","usa" => "Dòlar"); |
Una forma molt pràctica d'emmagatzemar dades és mitjançant la creació
d’arrays multidimensionals (taules). Posem l'exemple següent: Volem
emmagatzemar dintre d'una mateixa taula el nom, moneda i llengua parlada en
cada país. Per a fer-ho podem emprar un array anomenat país que vindrà definit
per aquestes tres característiques (claus). Per a crear-lo, hauriem d'escriure
una expressió del mateix tipus que la vista anteriorment en la qual ficarem un array
dintre de l'altre. Aquest procés d'incloure una instrucció dintre d'una altra
es diu niar i és molt corrent en programació:
|
$pais=array |
Abans d'entrar en el detall d'aquest petit script, comentem alguns punts
referents a la sintaxi. Com pot veure's, en aquesta seqüència de script, no hem
introduït punt i coma ";" al final de cada línia. Això és simplement a causa del fet que allò que hem escrit pot ser considerat com una sola instrucció.
En realitat, som nosaltres qui decidim tallar-la en diverses línies per a,
així, facilitar la seva lectura. La veritable instrucció acabaria una vegada
definit completament l’array i és precisament aquí on hem col·locat l'únic punt
i coma. Per altra banda, podeu observar com hem jugat amb el tabulador per a
separar unes línies més que altres del principi. Això també ho fem per
qüestions de claredat, ja que ens permet veure quines parts del codi estan
incloses dintre d'unes altres. És important acostumar-se a escriure d'aquesta
forma de la mateixa manera que a introduir els comentaris ja que la claredat
dels scripts és fonamental a l'hora de depurar-los. Una mica d'esforç a l'hora de
crear-los pot estalviar-nos moltes hores a l'hora de corregir-los o
modificar-los mesos més tard.
Passant ja al comentari del programa, com podeu veure, aquest ens permet
emmagatzamar taules i, a partir d'una simple petició, visualitzar un determinat
valor en pantalla.
El que és interessant és que la utilitat dels arrays no acaba aquí, sinó
que també podem utilitzar tot un seguit de funcions creades per a ordenar-los
per ordre alfabètic directe o invers, per claus, comptar el nombre d'elements que
componen l’array a més de poder moure'ns per dintre d'aquest cap a davant o
endarrere.
Moltes són les funcions proposades per PHP per al tractament d’arrays, no entrarem aquí en una descripció de les mateixes. Només inclourem aquesta
petita taula que pot ser completada, si necessari, amb la documentació que ja
hem esmentat.
|
Funció |
Descripció |
|
array_values
(el_meu_array) |
Llista els
valors continguts en el meu array. |
|
asort(mi_array)
i arsort(el_meu_array) |
Ordena per
ordre alfabètic directe o invers en funció dels valors. |
|
count(el_meu_array) |
Ens dóna el
numero d'elements del nostre array. |
|
ksort(el_meu_array)
i krsort(el_meu_array) |
Ordena per
ordre alfabètic directe o invers en funció de les claus. |
|
list
($variable1, $variable2...)=el_meu_array |
Assigna
cada variable a cadascun dels valors de l’array. |
|
next(el_meu_array),
prev(el_meu_array), reset(el meu_array) i end(el_meu_array) |
Ens
permeten moure'ns per dintre de l’array amb un punter cap a davant, enrere i
al principi i al final. |
|
each(el_meu_array) |
Ens dóna
el valor i la clau de l'element en el qual ens trobem i mou al punter al
següent element. |
De gran utilitat és també el bucle foreach, que recorre de forma
seqüencial l’array de principi a fi. Està explicat en el capítol “Bucles II”.