Lavorando con gli array di PHP, può capitare l’esigenza di doverli svuotare, rimuovendo cioè ogni elemento in essi contenuto. L’operazione in questione è piuttosto semplice e può essere svolta utilizzando differenti modalità operative.
Svuotare un array con la funzione unset()
Il modo più semplice e veloce per eliminare una variabile dalla memoria è utilizzare la funzione unset(). Mediante questa funzione PHP cancellerà non solo il contenuto ma la stessa variabile! Il suo funzionamento, applicato ad un array, è il seguente:
// creo e popolo un array
$frutta = array('mela', 'pera', 'banana');
// faccio una serie di operazioni
// ...
// ora ho bisogno di svuotare l'array!
unset($frutta);
Così facendo la variabile $frutta non esisterà più, pertanto ogni tentativo di utilizzarla genererà un warning.
Svuotare un array mediante una nuova dichiarazione
Una tecnica davvero semplicissima per svuotare un array in PHP consiste nel dichiararla nuovamente, assegnandole come valore un array vuota, in questo modo:
// creo e popolo un array
$frutta = array('mela', 'pera', 'banana');
// faccio una serie di operazioni
// ...
// ora ho bisogno di svuotare l'array
$frutta = array();
A differenza dell’esempio precedente la variabile $frutta esiste ancora, quindi se provassimo ad utilizzarla il nostro codice non produrrà errori (sempre che la si richiami correttamente, ovviamente). E’ importante prestare attenzione a questa differenza tra le due tecniche, in quanto la seconda sarà preferibile ogni qual volta l’array dovesse servire nuovamente per essere, ad esempio, popolata di nuovi valori.
Cancellare specifici item dell’array
Per finire vediamo come cancellare non l’intero contenuto del nostro vettore ma solo specifici item. Supponiamo, ai fini del nostro esempio, di dover lavorare con questa variabile:
$frutta = array(
0 => 'mela',
1 => 'pera',
2 => 'banana'
);
L’array definità qui sopra è identica a quella utilizzata negli esempi precedenti con la sola differenza che, al fine di rendere più chiaro il funzionamento delle operazioni che faremo in seguito, abbiamo inserito i reiferimenti alle chiavi in modo esplicito.
Supponiamo ora di voler eliminare l’elemento con valore "mela". Per farlo potremo utilizzare nuovamente la funzione unset() applicandola non all’intera array ma al singolo item, in questo modo:
unset($frutta[0]);
Come potete vedere il parametro passato alla funzione unset() è il nome della variabile seguito dall’indicazione della chiave dell’item che desideriamo eliminare. Per avere conferma dell’avvenuta cancellazione sarà sufficiente stampare il contenuto dell’array mediante la funzione print_r().