Gli ARRAY nel PHP


Gli Array sono contenitori di variabili, nel senso che immagazinano al loro interno due o più variabili con il loro rispettivo valore. Per poterli inserire, estrarre e modificare, queste variabili sono indicizzate.
Esempio

$giornisettimana = Array ("domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato");

ti starai chiedendo: qual'è il nome di ogni variabile?
la risposta è semplice, il suo indice!
Quindi, se ad esmpio volessimo estrarre e visualizzare "mercoledì" dall'Array prima visto, scriveremmo:

$giornisettimana = Array ("domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato");
print $giornisettimana[3];


come avrai notato per estrarre il quarto valore abbiamo dovuto indicare [3], questo perchè l'indice parte da [0].
Per comprendere totalmente come vengono immagazzinati i valori all'interno di un array è utile mostrare un altro modo per creare lo stesso array con gli stessi valori.

$giornisettimana = Array();
$giornisettimana[0] = "domenica";
$giornisettimana[1] = "lunedì";
$giornisettimana[2] = "martedì";
$giornisettimana[3] = "mercoledì";
$giornisettimana[4] = "giovedì";
$giornisettimana[5] = "venerdì";
$giornisettimana[6] = "sabato";


a questo punto potremmo assegnare ad un'altra variabile, diciamo "$giorno", il valore di qualsiasi valore dell'array semplicemente indicandone l'indice o in altri termini il suo "nome", così:

$giorno = giornisettimana[4];.

ARRAY Multidimensionali


Quello che abbiamo visto precedentemente era un Array semplice o monodimensionale. Con il PHP si possono avere anche Array multidimensionali, ciò significa che un Array multidimensionale contiene al suo interno due o più Array semplici.
Il procedimento per creare un Array multidimensionale è il seguente;

$multiarraray = Array ("titolo" => array ("Minority Report","La carica dei 101","Star Trek"),
"genere" => array ("Azione/Fantastico","Animazione","Fantascienza"),
);

L'esempio presentato è un Array bidimensionale contenente gli Array "titolo" e "genere", contenenti ognuno tre valori. In questo caso si tratta di film. Per estrarre i relativi valori si esegue analogamente come per Array semplici, ma in questo caso bisogna indicare l'Array cui appartiene il valore, così:

<?php $films = Array ("titolo" => array ("Minority Report","La carica dei 101","Star Trek"),
"genere" => array ("Azione/Fantastico","Animazione","Fantascienza"),
);
echo $films["titolo"][0]; ?>


Minority Report sarebbe il risultato che apparireppe sullo schermo.
Supponiamo ora di voler far apparire sullo schermo una tabella con il titolo e il genere di una ipotetica top 3 dei film più votati, programmeremmo come segue:

<?php $films = Array ("titolo" => array ("Minority Report","La carica dei 101","Star Trek"), "genere" => array ("Azione/Fantastico","Animazione","Fantascienza"), ); ?>
<div align=left>
<table border=1 cellpadding=2 cellspacing=0><caption>TOP 3 PIU' VOTATI</caption>
<th bgcolor=#D3D3D3>#</th><th bgcolor=#D3D3D3>Titolo</th><th bgcolor=#D3D3D3>Genere</th>
<tr>
<td width=15>01</td>
<td width=210><?php echo $films["titolo"][0];?></td>
<td width=140><?php echo $films["genere"][0];?></td>
</tr>
<tr>
<td>02</td><td>
<?php echo $films["titolo"][1];?></td>
<td><?php echo $films["genere"][1];?></td>
</tr>
<tr>
<td>03</td>
<td><?php echo $films["titolo"][2];?></td>
<td><?php echo $films["genere"][2];?></td>
</tr>
<tr>
</table>
</div>


il risultato sarebbe (sono state omessi i tag html <html> <head> <body> etc. che generano la pagina web, la quale, ricordo, deve avere come estensione .php):


TOP 3 PIU' VOTATI
#TitoloGenere
01 Minority Report Azione/Fantastico
02 La carica dei 101 Animazione
03 Star Trek Fantascienza

Ovviamente si può creare una classifica con un numero di posizioni a piacere, e lo stesso per quanto riguarda le colonne; ad esempio aggiungendo il nome del regista, piuttosto che la casa produttrice o l'anno di produzione. In questo caso occorre creare un Array che contenga tanti Array per quanto sono le colonne della tabella che si vuole visualizzare.

Metodi usati con gli ARRAY


Per poter manipolare gli elementi di un qualsiasi Array esistono "Metodi" predefiniti. Una selezione di Metodi e la loro descrizione sono riassunti nella seguente tabella, con l'indicazione della versione PHP con la quale furono per la prima volta implementati:
Metodo Descrizione Vers. PHP
array_chunk() Divide l'array in tanti array contenenti tanti valori quanti specificati tra parentesi. Inoltre, specificando anche il parametro true si forza php di conservare l'indice, altrimenti esso parte sempre da zero. L'ultimo array potrà contenere un numero di valori minore di quanto specificato. 4.2.0
array_count_values() Restituisce quante volte un valore è ripetuto in un Array. Tra parentesi va riportato il nome dell'array che si sta esaminando. 4.0.0
array_fill() Inserisce uno specificato valore per quante volte specificato, a partire da uno specificato valore dell'indice. Es. $a = array_fill(5,3,"unita"); la variabile $a adesso contiene il valore "unita" per tre volte a partire dall'indice [5]. Quindi agli indici [5][6][7] dell'array $a è associato il valore "unita". 4.2.0
array_keys() Restituisce tutte le chiavi di un array. Es. $a=array(via => ("dei mille","italia"), cap => (10100, 10121));
echo array_keys($a) restituisce le chiavi via e cap. Se si sindica un valore dell'array esaminato, la funzione restituisce solamente la chiave che lo contiene. Es. echo array_keys($a,"dei mille") restituirà la chiave via
4.0.0
array_merge() Crea un array che è il risultato dell'unione degli array specificati tra parentesi. Es. array_merge($a, $b) crea un array che contiene i valori e chiavi contenuti negli array $a e $b 4.0.0
array_rand() Restituisce uno o più elementi casuali fra quelli contenuti in un array. Array_rand deve essere preceduto dalla funzione srand() per impostare il genratore di numero casuale 4.0.0
array_reverse() Restituisce un Array con gli elementi in ordine di indice inverso 4.0.0
array_search() Cerca uno specificato valore all'interno di un array. Se è trovato, restituisce la sua chiave, altrimenti il valore booleano false. 4.0.5
array_slice() Restituisce una parte degli elementi contenuti in un array, com especificato con i parametri tra parentesi. Es. $a = array ("a","b","c","d","e"); echo array_slice($a, 2, 3) restituisce i valori "c" "d" "e" 4.0.0
array_sum() Restituisce la somma dei valori contenuti nell'array 4.0.4
array_values() Restituisce tutti i valori contenuti in un array indipendentemente dalla chiave cui appartengono 4.0.0
count() Restituisce il numero di elementi contenuti in un array (come sizeof()) 4.0.0
in_array() Esamina se l'array contiene il valore specificato e restituisce true o false. E' generalmente utilizzato all'interno di un controllo di flusso (if). 3.0
shuffle() Questa funzione casualizza l'ordine degli elementi contenuti in un array 4.0.0
sizeof() Restituisce il numero degli elementi contenuti in un array (come count()) 3.0

Per un elenco completo dei Metodi supportati con i relativi parametri di utilizzo, scarica il Reference Book in italiano dal sito PHP.net quì





ultimo aggiornamento
Indietro all'indice