> MENU
ftp.png

Montare un FTP host come file system

screenshot-flyback.png

Flyback, l’alternativa Linux ad Apple Time Machine

10 gennaio 2008 Visualizzazioni: 1378 Focus

Corso su PHP: Ed ecco gli Array

Nella sesta lezione di questo corso spiegheremo gli array, una struttura dati molto importante in tutti i linguaggi di programmazione, ma che in PHP assume una particolare importanza per la sua semplicità e immensa flessibilità.

Cosa sono gli array?

Potete immaginare l’array come un contenitore diviso in scomparti, nel quale ognuno di questi può contenere una variabile. In questo modo è possibile creare una “collezione” di dati raggruppati in un unica struttura. Per esempio potreste voler contenere una serie di risultati di operazioni matematiche, oppure un elenco di nomi, ed è chiaro che utilizzare una variabile per ognuno di questi risultati, alla lunga diventa poco pratico. Utilizzando gli array potete immagazzinare tutti questi dati in un’unica struttura.

Array Classici

Vediamo un esempio (array1.php):

e il suo risultato:

Nome: Mario , Cognome: Rossi

L’istruzione alla riga 2 serve ad “inizializzare” la struttura, in questo modo si stabilisce che la variabile $arr è un array. Potete accedere alle varie posizioni dell’array (gli scomparti del contenitore) utilizzando un valore numerico che viene chiamato indice, infatti alle righe 3, 4 e 5, potete vedere come scrivere o leggere dati da questa particolare struttura dati.

Certe volte, accedere alle posizioni dell’array utilizzando un indice non è il massimo della comodità, anche perché ci sono casi in cui può essere più comodo avere un metodo più intuitivo per rintracciare le nostre variabili contenute all’interno dell’array.

Array Associativi

Facciamo un esempio pratico, immaginiamo di voler utilizzare un array per immagazzinare i dati anagrafici di una persona (array2.php):

Il risultato è lo stesso dell’esempio precedente, ma questa volta l’accesso ai dati viene effettuato non più tramite indice, ma tramite una stringa. Questi sono detti “array associativi”, tramite i quali è possibile effettuare un’associazione chiave->valore. Nella maggior parte dei linguaggi di programmazione, fare questa operazione comporta l’utilizzo di strutture dati complesse (liste, mappe, ecc.) che presuppongono una conoscenza più approfondita del linguaggio, mentre in PHP tutto si riduce all’utilizzo di un array, le cui posizioni sono identificate da una stringa anzichè da un indice.

Quando utilizzate gli array associativi, la stringa che identifica la posizione deve essere sempre racchiusa tra apici!

Sintassi alternativa

Esiste un altro modo per inserire elementi all’interno di un array, sfruttando il suo costruttore. Il costruttore dell’array è l’istruzione che vedete alla riga 2 di ognuno degli esempi, ossia “array()”. Come spiegato in precedenza, serve ad “inizializzare” la struttura dati, e nei casi che abbiamo esaminato fin’ora non fa altro che creare un array senza alcun valore al suo interno.

In questo esempio potete vedere come sfruttare il costruttore per inserire direttamente all’interno dell’array durante la sua costruzione (array3.php):

'Mario', 'cognome'=>'Rossi');
?>

Nella prima riga viene creato un array i cui dati sono referenziati tramite indice, quindi all’indice ‘0’ troveremo ‘Mario’ e all’indice ‘1’ troveremo ‘Rossi’ (come nel primo esempio). Nella seconda riga invece viene creato un array associativo in cui gli stessi dati sono all’interno delle posizioni ‘nome’ e ‘cognome’ (come nel secondo esempio).

Considerazioni

Facciamo qualche considerazione aggiuntiva sugli array:

  • L’array non ha dimensioni definite a priori, potete aggiungere dati al suo interno finché ne avete la necessità
  • Potete inserire dati di qualunque tipo all’interno di un’array, anche un’altro array!
  • Gli identificatori (indici o chiavi) possono essere solamente interi o stringhe, non sono permessi array con identificatori float o boolean

Ora che abbiamo una panoramica generale di variabili, tipi di dati e operatori, siamo pronti a passare a qualcosa di più complesso; nella prossima lezione parleremo delle strutture di controllo, quindi continuate a seguirci!

Vuoi discutere più approfonditamente le tematiche trattate? Vieni sul nostro forum!

LEZIONI PRECEDENTI:
11 Dicembre 2007: Introduzione
17 Dicembre 2007: Installazione di una piattaforma LAMP su Ubuntu Linux
18 Dicembre 2007: Dentro l’HTML
20 Dicembre 2007: E tu di che tipo sei?
7 Gennaio 2008: Operiamo?

di Rocco Zanni - TuxJournal.net

twittergoogle_pluslinkedinmail
  • augusto

    Esiste anche una seconda sintassi alternativa:
    $arr = array();
    $arr[] = “pippo”;
    $arr[] = “pluto”;

    php userà una numerazione automatica dell’indice e si avrà così $arr[0] = “pippo”, $arr[1] = “pluto”…

  • http://www.tuxjournal.net rocco.zanni

    Si certo, è anche possibile fare array misti con riferimenti sia indice che stringa, ma dato che questo è un corso entry-level non mi è sembrato il caso di sollevare certi casi un po particolari.

    In ogni modo gli interventi sono apprezzati, e se volete approfondire gli argomenti trattati chiedete pure sul forum, li abbiamo spazio per tutto!

  • magic3

    In array1.php la riga 4 manca un ; alla fine

  • giomini

    @augusto: anche se è più semplice usare $array[]=’blablabla’;
    da quello che so gli script dovrebbero essere più veloci usando la funzione array_push();

  • http://www.tuxjournal.net rocco.zanni

    @giomini

    E’ esattamente il contrario, dato che l’interprete, nel caso di array_push deve effettuare una chiamata a funzione.
    Ecco il link di uno speed test tra i due comandi

    http://snipplr.com/view/759/speed-test-arraypush-vs-array/

    Ciao