Come leggere i dati contenuti dentro un array
ALLWEB free
Web Directory Script Linguaggi
Italiano Inglese Tutte
 
 21 Oct 2014
aggiungi in preferiti  
Home    Mappa directory    Script




Lettura dati da un array:


In questa sezione: Per riuscire ad interagire con gli array dobbiamo necessariamente riuscire a ricavare i dati in esso contenuti.
Possiamo trovare almeno tre tipi di array:
  • Un array che contiene pochi ed essenziali dati, conoscendone già il numero e le chiavi.
    In questo caso possiamo ricavare i dati scrivendo semplicemente il nome dell'array con il numeratore fra parentesi quadre, ad esempio: echo $saluto[1];
  • Un array di sistema fornito dalle procedure PHP, in questo caso dovrete consultare tali specifiche per risalire al nome ed alla chiave per trovare il dato in esso contenuto.
  • Un array che contiene un numero indefinito di dati

In questa sezione esamineremo il terzo caso, ossia gli array con un numero non definito di elementi al suo interno.

La procedura per risalire ai dati è molto semplice. Si può utilizzare un ciclo FOR, dopo essere risaliti al numero di elementi che compone l'array, oppure si può utilizzare un ciclo FOREACH, forse il metodo più indicato.
Per la prima soluzione (ciclo FOR), dobbiamo necessariamente avere un array con chiavi numeriche ed ordinate, altrimenti rischiamo di non vedere tutti i dati in esso contenuti.


Contare in array:

Per contare gli elementi contenuti in un array dobbiamo utilizzare la funzione count()

Esempio:
Supponiamo di avere un array così composto:
$saluto = array('buongiorno','buonasera','buonanotte'); Se scriviamo
$nomeacaso = count($saluto);
La variabile $nomeacaso da adesso contiene il numero degli elementi dell'array, ossia 3.



Ciclo FOR ed array:

Per alcuni webmaster utilizzare un ciclo FOR risulterà il metodo più semplice per ricavare i dati contenuti in un array. Questo perché il ciclo FOR è utilizzato anche in altri momenti, ed il suo utilizzo risulterà più semplice, quasi automatico.
Il ciclo FOR mostra comunque molti limiti nel campo degli array, in pratica possiamo utilizzare il ciclo FOR solo se troviamo un array con chiavi numeriche ed ordinate, altrimenti non leggeremo tutti i dati in esso contenuti.

Procedura ciclo FOR:
Dopo aver ricavato il numero degli elementi con la funzione count() dobbiamo scrivere il ciclo for fermandoci appena trovato l'ultimo elemento. La chiave di lettura sarà la stessa variabile di controllo del ciclo FOR.

Esempio:
$saluto = array('buongiorno','buonasera','buonanotte');
$conta = count($saluto);
for($i=0;$i<$conta;$i++){
echo"<span style="color:green;">"$saluto[$i]."</span><br>";
}
Otterremo come risultato:
buongiorno
buonasera
buonanotte

All'interno del ciclo FOR abbiamo inserito l'espressione di confronto $i<$conta; e non l'espressione $i<=$conta; per il semplice motivo che $conta=3, ma la chiave n°3 nell'array non esiste. In effetti le chiavi sono tre ma partono dal numero zero, in pratica abbiamo [0] [1] [2] ma non esiste [3]. La lettura dentro l'array non è effettuata dalla variabile $conta ma dalla variabile $i (nell'esempio $saluto[$i]), che parte dal numero zero (come impostato dal ciclo FOR) e procede nel ciclo implementando di 1 per 3 volte, fino a raggiongere $saluto[2]


Ciclo FOREACH e array con chiavi numeriche o letterali:

Il ciclo FOREACH è nato proprio per leggere dentro gli array. Se il ciclo FOR non può proseguire nella lettura delle chiavi letterali, il ciclo FOREACH legge TUTTO, fino all'ultimo dato contenuto nell'array.
Il suo utilizzo è sicuramente più indicato, proprio perché nasce con questo scopo.

Il ciclo foreach si utilizza esclusivamente per gli array. In pratica il ciclo guarda dentro un array e per ogni elemento ne estrae la chiave ed il valore.

Sintassi ciclo foreach:
foreach($array as $chiave => $valore){
..operazioni..
}
Per ogni ciclo avremo $chiave contenente la chiave dell'elemento esaminato, e $valore contenente il valore dell'elemento esaminato.

Esempio:
<?php
$saluto2['mattina'] = 'buongiorno';
$saluto2['sera'] = 'buonasera';
$saluto2['notte'] = 'buonanotte';
foreach ( $saluto2 as $chiave => $valore) {
echo $chiave."--".$valore."<br/>";
}
?>
Dal ciclo dell'esempio otterremo come risultato:
mattina--buongiorno
sera--buonasera
notte--buonanotte


Con il ciclo foreach() possiamo anche agire direttamente sull'array:
<?php
$saluto2['mattina'] = 'buongiorno';
$saluto2['sera'] = 'buonasera';
$saluto2['notte'] = 'buonanotte';
foreach ( $saluto2 as $chiave => $valore) {
echo $saluto2[$chiave]."<br/>";
}
?>
Dal ciclo dell'esempio otterremo come risultato:
buongiorno
buonasera
buonanotte


Array con chiavi miste:

Per risalire ai dati contenuti in array con chiavi miste si utilizza la stessa procedure degli array con le chiavi letterali.
Vediamo un esempio di array con chiavi miste monitorato con il ciclo foreach():
<?php
$saluto3['mattina'] = 'buongiorno';
$saluto3['sera'] = 'buonasera';
$saluto3['notte'] = 'buonanotte';
$saluto3[3] = 'salve';
$saluto3[] = 'ciao';
foreach ( $saluto3 as $chiave => $valore) {
echo $chiave."--".$valore."<br/>";
}
?>
Dal ciclo dell'esempio otterremo come risultato:
mattina--buongiorno
sera--buonasera
notte--buonanotte
3--salve
4--ciao