In PHP, così come in molti altri linguaggi di programmazione, con il termine array si identifica una struttura in cui i dati sono mantenuti tramite una associazione chiave --> valore.
Questa particolare struttura permette di gestire liste, tabelle hash, stack, code. Inoltre, il fatto che un valore possa esso stesso essere un array permette di gestire molte altre implementazioni di strutture dati ordinate che vengono utilizzate come basi dei più conosciuti algoritmi.
La creazione di un array avviene tramite il costrutto array
e la definizione delle coppie di valori, si noti come l'indicazione delle chiavi (cioè degli indici del vettore) non è obbligatoria, si vedrà di seguito come PHP gestisce l'indicizzazione automatica dei valori per i quali non si è specificato l'indice.
$mioarray = array("chiave1" =>"valore1", 2 => "valore2", "chiave3" => "valore3", "valore4")
Utilissima, al solito, le funzioni print_r
e var_dump
che ci permettono di ispezionare il contenuto delle nostre strutture dati. Per il nostro esempio otterremo:
Array
(
[chiave1] => valore1
[2] => valore2
[chiave3] => valore3
[3] => valore4
)
Come si può vedere, l'interprete PHP si è occupato di assegnare l'indice 3 al valore4, il criterio utilizzato è quello di cercare il massimo intero utilizzato come indice e sommargli 1, nel caso non ci sia nessun indice numerico allora il primo sarà 0. Si presti attenzione al fatto che una chiave viene considerata un intero anche quando essa sia una rappresentazione standard dello stesso, quindi stringhe del tipo "3" verranno considerate indici numerici mentre non lo saranno le stringhe come "003".
I contenuti (valori indicizzati) dell'array sono accessibili inidicando la chiave (indice) associata all'interno di parentesi quadre, sempre dal nostro esempio:
print $mioarray[2];
che stamperà valore2
oppure
print $mioarray["chiave1"];
che avrà come output valore1
si noti come
print $mioarray;
non mostra tutti i valori ma l'indicazione che si sta cercando di stampare un array: array.
L'inserimento di nuovi valori all'interno dell'array può avvenire in modo esplicito cioè assegnando un valore ad una particolare chiave:
$mioarray["nuovachiave"]="nuovovalore";
oppure implicitamente delegando all'interprete la generazione dell'inidice in base alla regole presentate sopra:
$mioarray[]="nuovovalore";
.
La rimozione di elementi di un array avviene tramite la funzione unset
, ad esempio:
unset($mioarray["nuovachiave"])
rimuovrà dall'array l'elemento con indice nuovachiave.
Il fatto che un valore può essere a sua volta definito come un array offre la possibilità di utilizzare array multidimensionali, vediamo un esempio:
$multiarray= array("itemA" => array("campo1" => "valore1A",
"campo2" => "valore2A",
"campo3" => "valore3A"),
"itemB" => array("campo1" => "valore1B",
"campo2" => "valore2B",
"campo3" => "valore3B")
);
l'accesso alla particolare componente dell'array avviene, al solito, utilizzando gli indici all'interno di parentesi quadre, in questo caso scendendo tra i livelli fino a quello desiderato:
print $multiarray["itemB"]["campo2"];
risulterà in valore2B
Variabili, condizioni, costanti e sintassi generale del codice.
Re: Come salvo un array su un file?
dfs
RispondiSalvare su un file
Devi studiarti i comandi per aprire un file, modificarlo e chiuderlo, sono tre comandi in tutto mi pare, quindi ridirezioni sul file l'output dell'array con print_r, oppure con un ciclo foreach scrivi tutta l'array sul file.
RispondiCome salvo un array su un file?
Ho un problema: voglio salvare un intero array su un file, senza salvarne esplicitamente tutti i campi, ma come unica struttura dati. Come devo fare? grazie