Christian Castelli
a- a+

Liste ed array (Parte II)

LISTE ED ARRAY PARTE 2

Funzioni per la gestione degli array

Al pari delle liste, ColdFusion fornisce molte funzioniintegrate per lavorare con gli array. La lista sottostanteindica quelle più comunemente usate:

  • ArrayNew(): crea un array;
  • ArrayLen(): determina il numero di elementi di un array;
  • IsArray(): ritorna true se il valore è presente nell'array, altrimenti false;
  • ArrayIsEmpty(): ritorna true se l'array non contiene alcun elemento;
  • ArraySort(): ordina gli elementi di un array secondo un certo tipo di ordinamento;
  • ArrayAppend(): aggiunge un elemento alla fine di un array;
  • ArrayPrepend(): aggiunge un elemento all'inizio di un array;
  • ArrayInsertAt(): inserisce un valore all'interno di un array. Gli elementi dell'array i cui indici sono maggiori rispetto alla nuova posizione vengono incrementati di uno. La dimensione dell'array viene incrementata di uno;
  • ArrayDeleteAt(): cancella un elemento da un array;
  • ArrayClear(): cancella tutti gli elementi da un array;
  • ArrayMin(): ritorna il valore numerico più piccolo presente in un array;
  • ArrayMax(): ritorna il valore numerico più grande presente in un array;
  • ArrayAvg():calcola la media dei valori presenti nell'array;
  • ArraySum(): calcola la somma totale dei valori presenti nell'array;
  • ArrayResize(): ritorna il primo elemento dell'array;
  • ArrayToList(): converte un array monodimensionale in una lista;
  • ListToArray(): converte una lista in un array monodimensionale.


Array bidimensionali

ColdFusion supporta gli array bidimensionali, che sono similialle tabelle o alle griglie. Potete pensare all'arraypiù esterno come quello che contiene le righe mentreall'array interno a quello che contiene i dati in quellerighe. Per esempio, un array bidimensionale denominatorockbands potrebbe contenere i nomi dei gruppimusicali e alcune delle canzoni che suonano. Qui sottoc'è una tabella che rappresenta tale arraybidimensionale:

Band

Canzone 1

Canzone 2

Canzone 3

Beatles Love Me Do Hey Jude Helter Skelter
Rolling Stones Waiting on a Friend Angie Yesterday's Papers
Eagles Life in the Fast Lane Hotel California Best of My Love

Il codice seguente mostra come creare tale arraybidimensionale. Si noti che l'header della tabella vistaprima non viene inclusa.

Es.1: Arrays-2Dim-create.cfm

<html>  <head>  <title>Gruppi musicali</title>  </head>    <body>  <h1>Gruppi musicali</h1>  <cfset rockbands=ArrayNew(2)>  <cfset rockbands[1][1]="Beatles">  <cfset rockbands[1][2]="Love Me Do">  <cfset rockbands[1][3]="Hey Jude">  <cfset rockbands[1][4]="Helter Skelter">    <cfset rockbands[2][1]="Rolling Stones">  <cfset rockbands[2][2]="Waiting on a Friend">  <cfset rockbands[2][3]="Angie">  <cfset rockbands[2][4]="Yesterday's Papers">    <cfset rockbands[3][1]="Eagles">  <cfset rockbands[3][2]="Life in the Fast Lane">  <cfset rockbands[3][3]="Hotel California">  <cfset rockbands[3][4]="Best of My Love">  </body></html>

 

<a href="/img/22/iframe_CF_listArray3.html" title="Vedi esempio">Vedi codice</a>;

 

Per leggere un elemento da un array bidimensionale, si deveprima di tutto identificare l'indice rappresentante lariga e poi identificare l'indice rappresentante lacolonna dell'elemento. Ad esempio, la canzone"Angie" è presente alla riga 2nella colonna 3, quindi viene identificata comerockbands[2][3].

Per scorrere un array bidimensionale, si deve innestare unciclo dentro un altro ciclo. Il seguente codice creeràuna tabella a partire da un array bidimensionale.

Es.2: Arrays-2Dim-read.cfm

---- Codice omesso ---- <table border="1">   <cfloop from="1" to="#ArrayLen(rockbands)#" index="i">   <tr>    <cfoutput>    <cfloop from="1" to="#ArrayLen(rockbands[i])#" index="j">     <td>#rockbands[i][j]#</td>    </cfloop>    </cfoutput>   </tr>   </cfloop>  </table>  </body>  </html>

 

<a href="/img/22/iframe_CF_listArray4.html" title="Vedi esempio">Vedi codice</a>;

 

Conclusioni

Le liste e gli array possono essere molto utili per lavorarecon set di dati. In molti casi, gli array sono moltopiù efficienti delle liste poiché una lista nonè un tipo predefinito ma deve essere creato einterpretato da ColdFusion a runtime. Per cui, a meno che idati non siano già contenuti in una lista, èbuona pratica usare gli array.



Ti potrebbe interessare anche

commenta la notizia