Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 28 di 67
  • livello intermedio
Indice lezioni

Array in PHP

Cosa sono, a cosa servono e come si usano gli array in PHP.
Cosa sono, a cosa servono e come si usano gli array in PHP.
Link copiato negli appunti

Possiamo descrivere un array come una matrice matematica. In termini più semplici può essere considerato una collezione di elementi ognuno identificato da un indice; gli indici di un array possono essere numerici o stringhe. Gli elementi dell'array possono contenere al proprio interno qualsiasi tipo di dato, compresi oggetti o altri array.

Un array può essere definito in due modi equivalenti:

$array = array();
$array = [];

I due esempi si equivalgono: abbiamo definito una variabile $array assegnandole un array vuoto. Possiamo però inizializzarlo con dei valori definiti al suo interno:

$frutti = array('banana', 'pesca', 'lampone');
$frutti = ['banana', 'pesca', 'lampone'];

Anche in questo caso i due esempi si equivalgono. In ogni momento possiamo visualizzare il contenuto di un array con la funzione print_r(), utile in caso di debug:

$frutti = ['banana', 'pesca', 'lampone'];
print_r($frutti);

L'esempio restituirà un output come il seguente:

Array
(
[0] => banana
[1] => pesca
[2] => lampone
)

Un array è quindi un contenitore di elementi contraddistinti da un indice. Se l'indice non viene esplicitato di default è di tipo numerico 0-based. 0-based sta ad indicare che l'indice dell'array inizierà da 0 anziché da 1. Come abbiamo potuto vedere nell'output dell'esempio precedente, il primo elemento dell'array (banana) possedeva infatti l'indice con valore 0.

Nel caso di array con indice numerico è possibile accedere ai singoli elementi attraverso il proprio indice:

$frutti = ['banana', 'pesca', 'lampone'];
echo "Il mio frutto preferito è il " . $frutti[2];

L'esempio stamperà Il mio frutto preferito è il lampone perché ho deciso di stampare il terzo (indice 2 partendo da 0) elemento dell'array.

Array associativo

Un altro modo molto di utilizzare gli array è quello di sfruttare gli indici come stringhe anziché come valore numerico:

$annoDiNascita = [
'Simone' => '1986',
'Gabriele' => '1991',
'Giuseppe' => '1992',
'Renato' => '1988'
];

Nell'array appena definito ogni elemento è caratterizzato da una coppia chiave -> valore in cui la chiave (o indice) è il nome di una persona e il valore è il suo anno di nascita. Supponiamo di voler stampare la data di nascita di uno degli utenti, possiamo accedere al suo valore in questo modo:

echo "L'anno di nascita di Gabriele è " . $annoDiNascita['Gabriele'];

Come per gli indici numerici è sufficiente indicare l'indice tra parentesi quadre per accedere al valore di un elemento. Usando la funzione print_r() sull'array definito in precedenza, eseguendo quindi il comando print_r($annoDiNascita); otterremo il seguente output:

Array
(
[Simone] => 1986
[Gabriele] => 1991
[Giuseppe] => 1992
[Renato] => 1988
)

Un array può contenere ulteriori array, in questo caso potremmo avere una situazione come la seguente:

$partecipanti = [
'Simone' => [
'anno' => '1986',
'sesso' => 'M',
'email' => 'test@notreal.com'
],
'Gabriele' => [
'anno' => '1991',
'sesso' => 'M',
'email' => 'test2@notreal.com'
],
'Josephine' => [
'anno' => '1985',
'sesso' => 'F',
'email' => 'test3@notreal.com'
],
];

Nell'esempio abbiamo un array con chiavi contenenti i nomi degli utenti. Il valore degli elementi dell'array è un ulteriore sotto-array contenente le proprietà dell'utente: anno di nascita, sesso e email. In questo caso per accedere ad un valore specifico dell'array possiamo usare la sintassi:

echo 'La mail di Josephine è ' . $partecipanti['Josephine']['email'];

Richiamando print_r() sull'array avremo in output:

Array
(
[Simone] => Array
(
[anno] => 1986
[sesso] => M
[email] => test@notreal.com
)
[Gabriele] => Array
(
[anno] => 1991
[sesso] => M
[email] => test2@notreal.com
)
[Josephine] => Array
(
[anno] => 1985
[sesso] => F
[email] => test3@notreal.com
)
)

Aggiungere o modificare il valore di un elemento

Nello stesso modo in cui possiamo accedere al contenuto di un elemento di un array possiamo anche modificarne il valore. Quindi riprendendo l'array $partecipanti, supponendo di voler modificare la mail di uno degli utenti possiamo operare in questo modo:

$partecipanti['Simone']['email'] = 'valid@email.com'

Lanciando print_r() dopo la modifica l'output sarà:

Array
(
[Simone] => Array
(
[anno] => 1986
[sesso] => M
[email] => valid@email.com
)
[Gabriele] => Array
(
[anno] => 1991
[sesso] => M
[email] => test2@notreal.com
)
[Josephine] => Array
(
[anno] => 1985
[sesso] => F
[email] => test3@notreal.com
)
)

Nel caso in cui volessimo aggiungere un nuovo partecipante possiamo utilizzare la sintassi:

$partecipanti['Giuseppe'] = [
'anno' => 1992,
'sesso' => 'M',
'email' => 'giuseppe@test.com'
];

E' sufficiente richiamare l'array indicandogli il nuovo indice ed il valore che conterrà. Richiamando print_r() sull'array avremo:

Array
(
[Simone] => Array
(
[anno] => 1986
[sesso] => M
[email] => valid@email.com
)
[Gabriele] => Array
(
[anno] => 1991
[sesso] => M
[email] => test2@notreal.com
)
[Josephine] => Array
(
[anno] => 1985
[sesso] => F
[email] => test3@notreal.com
)
[Giuseppe] => Array
(
[anno] => 1992
[sesso] => M
[email] => giuseppe@test.com
)
)

Ti consigliamo anche