logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Lezioni di PHP - Lezione 10 - Array.

09/10/2025, by Ivan

Fino a questa lezione abbiamo lavorato solo con variabili numeriche e stringhe, ma ora conosceremo le array. Le array possono contenere sia variabili numeriche che testuali, e proprio per questo si chiamano “array”.

Il concetto di array è semplice: esiste un insieme di chiavi e un insieme di valori. A ogni chiave dell’array corrisponde un valore. Ad esempio, se abbiamo le chiavi 1, 2, 3, i valori possono essere 4, 'Hello World', true. Le array si dichiarano come le variabili, con il simbolo del dollaro:

$tree = array();

Per creare un array usiamo la funzione array().

In realtà, dichiarare un array non è obbligatorio in PHP, proprio come non è obbligatorio dichiarare le variabili. Tuttavia, per comprendere meglio il codice (soprattutto quello scritto da altri) è buona pratica dichiararle esplicitamente e sapere di che tipo sono.

Ora definiamo l’array mostrato sopra:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
?>

Nota la sintassi: tutto inizia come una normale variabile a cui assegniamo un valore. Poi usiamo la parola chiave array, che indica che la variabile sarà un array. Tra le parentesi tonde inseriamo le coppie chiave/valore.

La struttura è la seguente:

array(
  chiave1 => valore1,
  chiave2 => valore2,
);

Prima scriviamo la chiave, poi il simbolo =>, seguito dal valore associato alla chiave. Dopo ogni coppia chiave/valore mettiamo una virgola. E così via per tutte le coppie.

Possiamo scrivere un array anche in una sola riga:

<?php
  $tree = array(1 => 4, 2 => 'Hello World', 3 => true,); 
?>

In entrambi i casi, la variabile $tree sarà identica. Il primo metodo è solo più leggibile. Parleremo delle convenzioni di scrittura più avanti — per ora è più importante capire il concetto.

Possiamo stampare un array a schermo con la funzione print_r(). A differenza di print, print_r usa le parentesi tonde:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  print_r($tree);
?>

Il risultato sarà:

Array ( [1] => 4 [2] => Hello World [3] => 1 )

Se aggiungiamo il tag <pre>, il risultato sarà più leggibile:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

Otterremo questo:

Array
(
    1 => 4,
    2 => 'Hello World',
    3 => true,
)

Ora che sappiamo creare gli array, proviamo a estrarre informazioni da essi:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  print $tree[2];
?>

In questo modo abbiamo estratto il secondo elemento dell’array ('Hello World') e lo abbiamo stampato. Per accedere a un valore basta scrivere il nome dell’array seguito da una chiave tra parentesi quadre, ad esempio $tree[1], $tree[3].

Ora vediamo come aggiungere un elemento a un array. Basta usare una chiave vuota:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  $tree[] = 'Un altro elemento';
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

Il risultato sarà:

Array
(
    [1] => 4
    [2] => Hello World
    [3] => 1
    [4] => Un altro elemento
)

Come vedi, specificando una chiave vuota PHP aggiunge automaticamente il numero successivo come chiave. Ma possiamo anche aggiungere un elemento con una chiave specifica:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  $tree[6] = 'Altro elemento';
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

In questo caso avremo le chiavi 1, 2, 3 e 6, mentre le chiavi 4 e 5 non esisteranno. Ricorda quindi che se un array contiene le chiavi 103 e 105, non significa che la chiave 104 esista. Possiamo verificarlo con:

if (empty($tree[104])) {

}

Se indichiamo una chiave già esistente, il suo valore verrà sovrascritto:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  $tree[3] = 'Altro valore';
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

Nessun nuovo elemento verrà creato, ma il valore del terzo elemento sarà sostituito.

Un’altra cosa importante: la chiave di un array può essere anche una stringa:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    'key3' => true,
  ); 
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

In questo caso la chiave viene scritta tra virgolette (singole o doppie). E possiamo richiamarla così:

print $tree['key3'];

Penso che ora gli array semplici siano chiari... quindi passiamo agli array multidimensionali.

PHP — Array multidimensionali

Come suggerisce il nome, gli array multidimensionali hanno più dimensioni. Un esempio intuitivo è la tabella pitagorica: abbiamo due numeri e il risultato dipende da entrambi.

<?php
$multi = array();
$multi[1][1] = 1;
$multi[1][2] = 2;
$multi[1][3] = 3;
$multi[2][1] = 2;
$multi[2][2] = 4;
$multi[2][3] = 6;
$multi[3][1] = 3;
$multi[3][2] = 6;
$multi[3][3] = 9;
print '<pre>';
print_r($multi);
print '</pre>';
?>

Negli array monodimensionali c’è una sola chiave, mentre in quelli bidimensionali ce ne sono due, nei tridimensionali tre, e così via. L’ordine delle chiavi è importante: $multi[1][3] e $multi[3][1] sono due valori diversi.

<?php
$multi = array();
$multi[1][3] = 3;
$multi[3][1] = 'Hello, World!';
print '<pre>';
print_r($multi);
print '</pre>';
?>

Possiamo anche definire array multidimensionali completi in una volta sola:

<?php
$multi = array(
  1 => array(
    1 => 1,
    2 => 2,
    3 => 3,
  ),
  2 => array(
    1 => 2,
    2 => 4,
    3 => 6,
  ),
  3 => array(
    1 => 3,
    2 => 6,
    3 => 9,
  ),
);
print '<pre>';
print_r($multi);
print '</pre>';
?>

Se in futuro aggiungerò altri esempi sugli array, li includerò qui. Per ora, possiamo passare alla prossima lezione.