
Un'array è una struttura di dati che memorizza delle informazioni complesse. I dati possono essere di qualsiasi tipo, ad esempio numeri, stringhe o oggetti. Ogni valore è identificato da un'etichetta chiamata "chiave", che può essere un numero intero o una stringa.
In quest'ultimo caso, stiamo parlando di un'array associativa, una struttura di dati che accoppia ogni elemento in una sequenza con una chiave univoca. La chiave può essere di qualsiasi tipo, inclusa un'altra array. Le array associative sono usate per memorizzare i dati a cui è possibile accedere in base al nome, ad esempio un'array con chiavi le Nazioni Europee e come valore le rispettive capitali.
$countries = [
'Francia' => 'Parigi',
'Germania' => 'Berlino',
'Italia' => 'Roma',
'Spagna' => 'Madrid'
];
Le array possono essere indicizzate in due modi: per posizione o per chiave, a seconda che si tratti di array numeriche o associative. Quando sono indicizzate in base alla posizione, il primo elemento della array si trova nella posizione 0, il secondo nella posizione 1 e così via. L'ultimo elemento in un'array ha un indice pari al numero di elementi nella array, meno 1.
Ad esempio, l'indice dell'ultimo elemento in un'array di cinque elementi è 4. Se indicizzata per chiave associativa, un elemento dell'array deve essere richiamato con una chiave esistente e viene restituito il valore corrispondente.
// Stampa Roma
echo $countries['Italia'];
In PHP, un'array viene creata usando la funzione array() o la funzione []. Queste funzioni accettano un elenco di valori come parametro che possono essere di qualsiasi tipo, incluse altre matrici.
Array monodimensionali e multidimensionali
Un array monodimensionale è la forma più semplice di array. Si tratta di un elenco unidimensionale di dati, che può contenere valori di qualsiasi tipo, come numeri, stringhe, o altri oggetti. Ogni elemento di un array monodimensionale è accessibile tramite una chiave, che può essere un indice numerico o una chiave associativa (nel caso degli array associativi).
In un array monodimensionale, i dati sono memorizzati in una singola sequenza, senza alcuna struttura complessa. Gli elementi sono indicizzati numericamente a partire da zero (per default) o tramite chiavi personalizzate.
Esempio di un array monodimensionale:
// Array numerico
$frutti = ["mela", "banana", "ciliegia"];
// Array associativo
$prezzi = [
"mela" => 1.5,
"banana" => 0.8,
"ciliegia" => 2.0
];
// Accesso agli elementi
echo $frutti[0]; // Stampa "mela"
echo $prezzi["banana"]; // Stampa 0.8
In questo esempio, $frutti
è un array numerico, mentre $prezzi
è un array associativo, in cui ogni frutto è associato a un prezzo.
Gli array multidimensionali sono array che contengono altri array al loro interno, creando una struttura di dati più complessa. Questo tipo di array consente di rappresentare dati che hanno più di una dimensione. Un esempio comune è quello delle matrici o delle tabelle, dove ogni elemento può essere rappresentato da una combinazione di più indici (coordinate).
Un array bidimensionale, ad esempio, può essere pensato come una tabella, dove ogni elemento è identificato da due chiavi: una per la riga e una per la colonna. Allo stesso modo, un array tridimensionale aggiunge una terza dimensione, come una griglia di cubi.
Esempio di un array bidimensionale:
// Array bidimensionale
$matrice = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
// Accesso agli elementi
echo $matrice[0][1]; // Stampa 2 (prima riga, seconda colonna)
In questo esempio, $matrice
è un array bidimensionale in cui ogni elemento è un altro array. L'accesso agli elementi avviene specificando due indici, uno per la riga e uno per la colonna.
Esempio di un array tridimensionale:
// Array tridimensionale
$griglia = [
[
[1, 2],
[3, 4]
],
[
[5, 6],
[7, 8]
]
];
// Accesso agli elementi
echo $griglia[1][0][1]; // Stampa 6 (secondo gruppo, prima riga, seconda colonna)
In questo esempio, $griglia
è un array tridimensionale, dove ogni elemento è un array bidimensionale.
Gli array multidimensionali sono utili per rappresentare dati complessi e strutturati, come ad esempio:
- Tabelle di database, dove ogni riga è un array di valori.
- Griglie o matrici, per esempio nel contesto delle applicazioni matematiche o scientifiche.
- Mappe geografiche o coordinate, come array contenenti coordinate (latitudine, longitudine) per località.
Questi array sono particolarmente utili per gestire dati in cui ogni elemento ha più di un attributo o proprietà, facilitando l’organizzazione e l’elaborazione di grandi quantità di informazioni.
Accesso e Manipolazione degli Array Multidimensionali
In PHP, l'accesso agli elementi di un array multidimensionale richiede la specifica di più indici, che corrispondono a ciascun livello della struttura. È possibile anche modificare gli array multidimensionali assegnando nuovi valori ai singoli elementi.
// Modificare un elemento
$matrice[1][2] = 10; // Modifica il valore nella seconda riga, terza colonna
Inoltre, è possibile aggiungere nuove righe o colonne dinamicamente:
// Aggiungere una nuova riga
$matrice[] = [10, 11, 12];
// Aggiungere un nuovo elemento in una riga specifica
$matrice[0][] = 4; // Aggiunge 4 alla prima riga
Aggiungere un elemento ad un'array
Il modo più semplice per aggiungere un elemento ad un'array PHP è usare la sua chiave come indice per il nuovo elemento.
Ad esempio, il codice seguente crea un'array denominata "frutta" e successivamente vi aggiunge un elemento:
$frutta = array("mela", "banana", "ciliegia");
$frutta[] = "uva";
Il codice di cui sopra assegna il valore "uva" alla chiave 3 nella array "frutta".
Eliminare un elemento dell'array
Se si vuole eliminare un elemento da un'array in PHP, si può usare la funzione unset(). Questa funzione accetta un parametro, che nel nostro caso è il nome della variabile array con la chiave che vogliamo eliminare. Ecco un esempio:
$items = array("mela", "arancia", "banana");
unset($items[1]);
Questo eliminerà l'elemento "arancia" dall'array $items.
Iterare un'array
L'iterazione è il processo di ripetizione di un insieme di istruzioni per un dato numero di volte. In PHP è possibile utilizzare il ciclo foreach per iterare le array. Il ciclo foreach eseguirà il blocco di codice per ogni elemento che compone l'array. All'interno del ciclo è possibile accedere all'elemento corrente dell'oggetto utilizzando un costrutto del genere:
$frutta = array("mela", "banana", "ciliegia");
foreach ($frutta as $key => $value) {
echo $frutta[$key];
}
Stampare un'array a video
Stampare array è un compito molto comune in PHP. Per stampare un'array sullo schermo, è possibile utilizzare la funzione print_r().
Questa funzione stampa la array in un formato leggibile. Ecco un esempio: Questo stamperà quanto segue sullo schermo:
Array ( [0] => mela [1] => arancione [2] => banana )
Funzioni Utili per gli Array in PHP
PHP offre una vasta gamma di funzioni per lavorare con gli array. Queste funzioni ti permettono di eseguire operazioni comuni sugli array, come aggiungere, rimuovere, ordinare e modificare i dati in modo rapido e semplice. Di seguito esploreremo in dettaglio le funzioni più utili per gestire gli array in PHP.
1. count()
La funzione count()
restituisce il numero di elementi presenti in un array. È utile per determinare la lunghezza di un array.
$frutta = ["mela", "banana", "ciliegia"];
echo count($frutta); // Stampa "3"
Nota: count()
può anche essere utilizzato per contare gli elementi in un oggetto di tipo Countable
.
2. array_push()
La funzione array_push()
aggiunge uno o più elementi alla fine di un array. Modifica direttamente l'array originale e restituisce la nuova lunghezza dell'array.
$frutta = ["mela", "banana"];
array_push($frutta, "ciliegia", "uva");
print_r($frutta);
// Stampa: Array ( [0] => mela [1] => banana [2] => ciliegia [3] => uva )
3. array_pop()
array_pop()
rimuove l'ultimo elemento da un array e lo restituisce. L'array viene modificato in modo permanente.
$frutta = ["mela", "banana", "ciliegia"];
$ultimo = array_pop($frutta);
echo $ultimo; // Stampa "ciliegia"
print_r($frutta); // Stampa: Array ( [0] => mela [1] => banana )
4. array_shift()
La funzione array_shift()
rimuove il primo elemento di un array e restituisce il valore rimosso. Gli indici degli elementi rimanenti vengono riordinati (indici numerici).
$frutta = ["mela", "banana", "ciliegia"];
$primo = array_shift($frutta);
echo $primo; // Stampa "mela"
print_r($frutta); // Stampa: Array ( [0] => banana [1] => ciliegia )
5. array_unshift()
Simile a array_push()
, ma invece di aggiungere elementi alla fine, array_unshift()
li aggiunge all'inizio dell'array. Gli elementi esistenti vengono spostati per fare spazio.
$frutta = ["banana", "ciliegia"];
array_unshift($frutta, "mela", "pera");
print_r($frutta);
// Stampa: Array ( [0] => mela [1] => pera [2] => banana [3] => ciliegia )
6. array_merge()
La funzione array_merge()
unisce due o più array in un solo array. Se gli array hanno chiavi numeriche, gli elementi vengono semplicemente aggiunti. Se ci sono array associativi, le chiavi vengono sovrascritte se si ripetono.
$array1 = ["mela", "banana"];
$array2 = ["ciliegia", "uva"];
$array3 = ["pera"];
$unione = array_merge($array1, $array2, $array3);
print_r($unione);
// Stampa: Array ( [0] => mela [1] => banana [2] => ciliegia [3] => uva [4] => pera )
7. array_diff()
La funzione array_diff()
restituisce un array contenente tutti gli elementi del primo array che non sono presenti in altri array. Confronta solo i valori, non le chiavi.
$array1 = ["mela", "banana", "ciliegia"];
$array2 = ["banana", "uva"];
$differenza = array_diff($array1, $array2);
print_r($differenza);
// Stampa: Array ( [0] => mela [2] => ciliegia )
8. array_intersect()
Simile a array_diff()
, array_intersect()
restituisce un array con gli elementi comuni tra due o più array.
$array1 = ["mela", "banana", "ciliegia"];
$array2 = ["banana", "ciliegia", "uva"];
$comuni = array_intersect($array1, $array2);
print_r($comuni);
// Stampa: Array ( [1] => banana [2] => ciliegia )
9. array_slice()
array_slice()
estrae una porzione di un array. Puoi specificare l'indice di partenza e, opzionalmente, la lunghezza della porzione da estrarre.
$frutta = ["mela", "banana", "ciliegia", "uva"];
$slice = array_slice($frutta, 1, 2);
print_r($slice);
// Stampa: Array ( [0] => banana [1] => ciliegia )
10. array_splice()
array_splice()
rimuove una porzione di un array e la sostituisce con nuovi elementi. Modifica l'array originale.
$frutta = ["mela", "banana", "ciliegia", "uva"];
array_splice($frutta, 1, 2, ["pera", "kiwi"]);
print_r($frutta);
// Stampa: Array ( [0] => mela [1] => pera [2] => kiwi [3] => uva )
11. array_map()
array_map()
applica una funzione a tutti gli elementi di un array e restituisce un nuovo array con i risultati.
$numeri = [1, 2, 3, 4];
$raddoppiati = array_map(function($numero) {
return $numero * 2;
}, $numeri);
print_r($raddoppiati);
// Stampa: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
12. array_filter()
array_filter()
filtra gli elementi di un array usando una funzione di callback. Restituisce un nuovo array contenente solo gli elementi che soddisfano la condizione specificata dalla funzione.
$numeri = [1, 2, 3, 4, 5];
$pari = array_filter($numeri, function($numero) {
return $numero % 2 == 0;
});
print_r($pari);
// Stampa: Array ( [1] => 2 [3] => 4 )
13. array_reduce()
array_reduce()
applica una funzione di callback agli elementi di un array, riducendo l'array a un singolo valore.
$numeri = [1, 2, 3, 4];
$somma = array_reduce($numeri, function($accumulatore, $numero) {
return $accumulatore + $numero;
}, 0);
echo $somma; // Stampa "10"
14. array_keys()
La funzione array_keys()
restituisce tutte le chiavi di un array. Puoi passare anche un valore per filtrare solo le chiavi che corrispondono a quel valore.
$array = ["Francia" => "Parigi", "Italia" => "Roma", "Spagna" => "Madrid"];
$chiavi = array_keys($array);
print_r($chiavi);
// Stampa: Array ( [0] => Francia [1] => Italia [2] => Spagna )
15. array_values()
array_values()
restituisce un array contenente tutti i valori dell'array originale, ma con nuovi indici numerici.
$array = ["Francia" => "Parigi", "Italia" => "Roma"];
$valori = array_values($array);
print_r($valori);
// Stampa: Array ( [0] => Parigi [1] => Roma )
16. array_flip()
array_flip()
scambia le chiavi con i valori in un array. Le chiavi diventano valori e viceversa.
$array = ["Francia" => "Parigi", "Italia" => "Roma"];
$invertito = array_flip($array);
print_r($invertito);
// Stampa: Array ( [Parigi] => Francia [Roma] => Italia )
17. in_array()
in_array()
verifica se un valore è presente in un array. Restituisce true
se il valore è trovato, altrimenti false
.
$frutta = ["mela", "banana", "ciliegia"];
if (in_array("banana", $frutta)) {
echo "Banana trovata!";
} else {
echo "Banana non trovata!";
}
// Stampa: "Banana trovata!"
18. array_rand()
array_rand()
restituisce una o più chiavi casuali da un array.
$frutta = ["mela","banana", "ciliegia"];
$chiaveCasuale = array_rand($frutta);
echo $frutta[$chiaveCasuale]; // Stampa un elemento casuale
19. sort()
La funzione `sort()` ordina un array in ordine crescente. Gli indici vengono riordinati numericamente.
$numeri = [3, 1, 4, 2];
sort($numeri);
print_r($numeri);
// Stampa: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
20. rsort()
rsort()
ordina un array in ordine decrescente.
$numeri = [3, 1, 4, 2];
rsort($numeri);
print_r($numeri);
// Stampa: Array ( [0] => 4 [1] => 3 [2] => 2 [3] => 1 )