Array php:
In questa sezione troverete:
Gli array non sono altro che contenitori dove poter stipare dati, con un contatore univoco per ogni dato inserito.
Per capire il funzionamento di un array immaginate una tabella con due colonne, una contenente un numero che partendo da zero aumenta di 1 per ogni riga, mentre nella colonna a fianco troveremo il dato da memorizzare.
I numeratori possono essere numerici o letterali, e non hanno un'obbligo sequenziale.
$saluto = array('buongiorno','buonasera','buonanotte');
Oppure:
$saluto[0] = 'buongiorno';
$saluto[1] = 'buonasera';
$saluto[2] = 'buonanotte';
Se scriviamo:
print $saluto[0]."<br>\n";
print $saluto[1]."<br>\n";
print $saluto[2]."<br>\n";
Otterremo come risultato:
buongiorno
buonasera
buonanotte
Se non dichiarato diversamente gli array partono dal numero zero.
Nell'esempio riprodotto sotto mostriamo come associare una chiave diversamente dal numero zero:
$saluto = array(5 => 'buongiorno', 'buonasera', 'buonanotte');
Con i simboli => associamo a buongiorno il numero 5. Tutti gli altri saranno
numerati di conseguenza (6 e 7).
Gli array, anche se sono indicizzati, possono essere incrementati.
Supponiamo di avere un array così composto:
$saluto = array('buongiorno','buonasera','buonanotte');
Adesso con dei semplici esempi vedremo come incrementare o manipolare gli array.
$saluto[] = 'buonanotte2';
In questo caso il client aumenta di un numero e lo associa a
buonanotte2, adesso l'array sarà formato così:
$saluto = array('buongiorno','buonasera','buonanotte','buonanotte2');
$saluto[1] = 'buonpomeriggio';
In questo caso il client sostituisce
buonasera con
buonpomeriggio, adesso l'array sarà formato così:
$saluto = array('buongiorno','buonpomeriggio','buonanotte','buonanotte2');
$saluto[6] = 'buonanotte3';
In questo caso il server associa
buonanotte3 con il numero 6,
lasciando libero il numero 4 e 5. Per riempirli lo dobbiamo espressamente dichiarare, perché
in caso di nuovo valore senza specificare il numero, il server incrementerà partendo dal
numeratore più alto.
Adesso il nuovo array sarà così composto:
$saluto = array('buongiorno','buonpomeriggio','buonanotte','buonanotte2','buonanotte3');
Le chiavi o numeratori saranno i seguenti:
$saluto[0]=buongiorno
$saluto[1]=buonpomeriggio
$saluto[2]=buonanotte
$saluto[3]=buonanotte2
$saluto[6]=buonanotte3
I valori
$saluto[4] e
$saluto[5] NON esistono.
Gli array hanno anche la possibilità di avere dei numeratori letterali.
Vediamo l'esempio:
$saluto = array('buongiorno', 'buonasera', 'buonanotte', 'abc' => 'buonpomeriggio');
Oppure:
$saluto[0] = 'buongiorno';
$saluto[1] = 'buonasera';
$saluto[2] = 'buonanotte';
$saluto['abc'] = 'buonpomeriggio';
Se adesso incrementiamo l'array di un valore, questo sarà il numero [3].
Come abbiamo visto i numeratori letterali sono sempre racchiusi fra apici. Questa regola salta
solo se l'elemento che richiama l'array è racchiuso fra i doppi apici.
Esempi:
print $saluto['abc']; //scrive
buonpomeriggio
print "allora $saluto[abc]"; //scrive
allora buonpomeriggio
print "allora $saluto['abc']"; //genera errore!!
print "allora {$saluto['abc']}"; //scrive
allora buonpomeriggio
print "allora" . $saluto['abc']; //scrive
allora buonpomeriggio (il punto concatena le stringhe)
Gli array si possono annidare, ossia un array ne può contenere altri.
Esempio:
$prova = array( array('a1', 'b1', 'abc1' => 'c1', 'def1' => 'd1'), array('a2', 'b2', 'abc2' => 'c2', 'def2' => 'd2'));
Se scriviamo:
print $prova[0][1]; // scrive
b1
print $prova[1]['abc2']; // scrive
c2
In pratica segue il percorso che gli abbiamo dato.
Annidare con numeratori:
$prova = array( 0 => array('a1', 'b1', 'abc1' => 'c1', 'def1' => 'd1'), 1 => array('a2', 'b2', 'abc2' => 'c2', 'def2' => 'd2'), 'abcdef', 'ghilmn');
Se scriviamo:
print $prova[0][1]; // scrive
b1
print $prova[1]['abc2']; // scrive
c2
print $prova[2]; // scrive
abcdef
Per eliminare gli elementi contenuti in un array basta usare la funzione
unset()
Esempio:
unset($prova[1]); // elimina l'elemento 1 dell'array $prova
unset($prova); // elimina tutto l'array $prova