ARRAYS ASSOCIATIUS EN PHP

 

Anteriorment hem vist el que són els arrays tradicionals en PHP i com operar amb ells de forma molt elemental. Hem après que els arrays poden denominar-se "variables amb localitzador" o "variables amb índex". Per tant els elements de l'array són dades que estan associats, al seu torn, a un element de l'array anomenat índex.

Suposem l'array nom[0], nom[1], nom[2]. El nom de variable per l'array és "nom" mentre que els índexs són 0, 1 i 2.

L'índex es caracteritza per connectar els elements de l'array per mitjà d'una numeració que comença per zero. Així, el primer element de l'array té índex zero, el segon té índex un, i així successivament.

Però en realitat, resulta que aquest índex és numèric només per defecte; és a dir, tenim la possibilitat de crear el nostre propi índex dins d'un array. Quan fem això, estem convertint l'array en el que s'anomena un array associatiu.

Escriu ara aquest codi i guardeu amb un nom de fitxer com exemple1.php. A continuació, puja el fitxer al servidor i visualitza el resultat.

<? Php // Exemple arrays

$colors_vehicles = array (

'Cotxe' => 'Rojo' ,

'Moto' => 'verd' ,

'Avio' => 'groc'

);

echo $colors_vehicles [ 'moto' ];

?>

Si et fixes en el codi, hem assignat a la variable $ colores_vehiculos una matriu associatiu. En ser associatiu hem d'especificar un índex. Els índexs que hem especificat són: cotxe, moto i avió. És a dir, en comptes d'usar 0, 1 i 2 hem fet servir cotxe, moto i avió.

Per declarar arrays associatius, en el parèntesi de definició del array, hem d'associar l'índex amb el valor per mitjà de l'operador =>.Fixa't que l'índex ha d'anar entre cometes simples. Després, per accedir a un element de l'array associatiu hem d'escriure la variable assignada a l'array, i posteriorment escriure entre claudàtors l'índex que hem assignat a aquest element.

Tenim la possibilitat d'utilitzar qualsevol tipus de dada per especificar un índex. Per defecte és un nombre, però també podem posar cadenes de text, com en l'exemple anterior i fins i tot variables. Escriu aquest codi i comprova el resultat en el teu servidor.

<? Php // Exemple arrays

$index = 'Cotxe' ;

$colors_vehicles = array(

$index=>'Vermell' ,

'Moto'=>'verd' ,

'Avio'=>'groc'

);

echo $colors_vehicles[$index];

?>

Com veus en aquest exemple hem fet servir una variable tipus cadena de text com a índex d'un array.

Finalment, els arrays associatius també poden usar-se en la forma de declaració habitual escrivint $nomVariable [index] = valor. Escriu aquest exemple de codi, guarda'l amb un nom d'arxiu i penja'l al servidor.

<? Php // Exemple arrays

$colors_vehicles['cotxe'] = 'Vermell' ;

$colors_vehicles['moto'] = 'verd' ;

$colors_vehicles['avio'] = 'groc' ;

echo $colors_vehicles['moto'];

?>

Comprovaràs que a la pantalla del navegador es mostra el text "verd".

 

EXERCICI

Crea el codi PHP de dos arxius que donin resposta al següent plantejament:

Volem emmagatzemar en una matriu el nombre d'alumnes amb què compta una acadèmia, ordenats en funció del nivell i de l'idioma que s'estudia. Tindrem 3 nivells: Nivell bàsic, mitjà i de perfeccionament, que es corresponen amb les files de la matriu, i 4 idiomes (Anglès, Francès, Alemany i Rus), que es corresponen amb les columnes de la matriu. Es demana fer la declaració de la matriu i assignar-li els valors indicats en la següent imatge complint amb:

a) Amb una sintaxi exemple d'ús d'arrays associatius on el primer índex de l'array (nivells) és un nombre i el segon un text indicatiu de l'idioma. S'ha de mostrar per pantalla els alumnes que hi ha a cada nivell i idioma. Exemple: numeroAlumnos[0] ['frances'] representarà el nombre d'alumnes que hi ha al nivell bàsic, idioma francès.

b) Amb una sintaxi exemple d'ús d'arrays associatius on tant el primer índex de l'array (nivells) com el segon (idiomes) sigui un text indicatiu. S'ha de mostrar per pantalla els alumnes que hi ha a cada nivell i idioma. Exemple: numeroAlumnes ['bàsic'] ['frances'] representarà el nombre d'alumnes que hi ha al nivell bàsic, idioma francès.

Nota: en tots dos casos ha de mostrar per pantalla que el nombre d'alumnes en el nivell bàsic, idioma anglès, hi ha 1 alumne; en el nivell bàsic, idioma francès, hi ha 14 alumnes, etc.