Array

Un array è un contenitore di dati in forma di coppie chiave / valore. Le chiavi possono essere numeri o stringhe mentre i dati possono essere di qualunque tipo. Le chiavi possono essere assegnate automaticamente ai dati, in forma di numeri incrementali partendo da 0, oppure possono essere definite dal programmatore, in forma numerica o di stringa.

Per creare un array si usa la funzione array() i cui parametri possono essere le coppie chiave / valore o solo i valori nel caso in cui vogliamo che le chiavi vengano assegnate automaticamente.

<?php 
$taglie = array(38 => "xxs", 40 => "xs", 42 => "s", 44 => "m", 46 => "l", 48 => "xl", 50 => "xxl");
echo "<p>Le taglie degli abiti partono dalla più picola, la ".$taglie[38].", e vanno fino alla ".$taglie[50].", con in mezzo la taglia ".$taglie[44].", la più venduta è la ".$taglie[46]." </p>";
 ?>

Per accedere ai valori raccolti nell'array dobbiamo sapere la chiave (o indice) sotto cui ogni valore è memorizzato. Per accedere, ad esempio, al valore memorizzato sotto la chiave "5" dobbiamo scrivere $nome_array[5].

Nell'esempio viene creato un array in cui le chiavi sono assegnate automaticamente in forma di numero, partendo da 0.

<?php 
$colori = array("rosso", "arancione", "giallo", "verde", "blu", "indaco", "viola");
echo "<p>Il primo colore dell'arcobaleno è ".$colori[0].", poi viene l'".$colori[1].", poi c'è il ".$colori[2].", il quarto è il ".$colori[3].", il quinto è il ".$colori[4].", poi viene l'".$colori[5]." e infine il ".$colori[6]." </p>";
 ?>

In questo esempio definiamo espressamente le chiavi usando l'operatore di assegnazione specifico =>.

<?php
    $persona = ['none' => "Pinco", 'cognome' => "Pallino", 'anno_nascita' => 1980, 'luogo_nascita' => "Roma", 'lavoro' => "operaio", 'stipendio' => 1500.00];
    //primo metodo
    echo "<p>Il signor ".$persona['nome']." ".$persona['cognome']." &egrave; nato nel ".$persona['anno_nascita']."</p>";
    //secondo metodo
    echo "<p>Lavora come {$persona['lavoro']} e il suo stipendio &egrave; di {$persona['stipendio']}</p>";
?>

In questo esempio creiamo un array in cui definiamo delle chiavi di tipo testuale.

Un altro modo di definire un array è quello che utilizza le parentesi quadre []. In questo esempio usiamo il metodo delle parentesi e lasciamo che alcune chiavi siano assegnate automaticamente mentre altre le assegniamo noi. Usiamo la funzione print_r() per stampare a video tutto il contenuto dell'array.

<?php
    $persona = ["Pinco", "Pallino", 1980, "Roma", "operaio", 1500.00];
    print_r($persona);
?>
<?php
$mesi[] = "gennaio";
$mesi[] = "febbraio";
$mesi[20] = "marzo";
$mesi["primavera"] = "aprile";
$mesi[] = "maggio";
$mesi[] = "giugno";
$mesi[30] = "luglio";
$mesi["estate"] = "agosto";
$mesi[] = "settembre";
$mesi[] = "ottobre";
$mesi[] = "novembre";
$mesi["natale"] = "dicembre";
echo "<p>ecco il contenuto dell'array \$mesi:</p>";
print_r($mesi);
 ?>

Le chiavi dei valori "gennaio" e "febbraio" sono state generate automaticamente quindi sono 0 e 1, la chiave di "marzo" l'abbiamo impostata a 20 e quella di "aprile" a "primavera", quella di maggio è stata generata di nuovo automaticamente ma partendo dall'ultima chiave numerica utilizzata che è 20. La stessa cosa per le chiavi di settembre, ottobre e novembre che sono 31, 32 e 33 poichè a "luglio" avevamo impostato la chiave 30.

E' anche possibile usare il metodo delle parentesi quadre senza passare dal costrutto array() ma assegnando i valori direttamente alla variabile.

Un modo veloce per stampare a video un elemento di un array è quello che usa le parentesi graffe e permette di non usare la concatenazione.

Array multidimensionali

Esistono anche gli array multidimensionali, cioè dei contenitori di coppie chiave / valore dove i valori sono a loro volta array.

<?php 
$partite = array (
"prima-giornata"=>array("Juve"=>3,"Inter"=>0),
"seconda-giornata"=>array("Milan"=>2,"Samp" => 1),
"terza-giornata" =>array("Roma"=>1, "Palermo" => 2)
);
echo "<p>ecco il contenuto dell'array a due dimensioni \$partite:</p>";
print_r($partite);
 ?>

Il puntatore