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

Le funzioni PHP per gestire gli array

PHP fornisce diverse funzioni che consentono di effettuare le più disparate operazioni sugli array. Analizziamo insieme le più utili che potremmo impiegare in un progetto reale.
PHP fornisce diverse funzioni che consentono di effettuare le più disparate operazioni sugli array. Analizziamo insieme le più utili che potremmo impiegare in un progetto reale.
Link copiato negli appunti

Ciclare gli elementi di un array

Abbiamo già analizzato in maniera molto approfondita come accedere agli elementi di un array con PHP e ciclarli attraverso il costrutto foreach. Per maggiori informazioni si può consultare la lezione relativa ai cicli foreach in PHP.

PHP array count :  contare gli elementi

Supponiamo di avere un array di iscritti ad un evento e di volerne ottenere il numero, la funzione count() è esattamente quello di cui abbiamo bisogno:

$partecipanti = ['Simone', 'Gabriele', 'Renato', 'Giuseppe'];
echo "Ci saranno " . count($partecipanti) . " partecipanti all'evento";

L'esempio precedente restituirà:

Ci saranno 4 partecipanti all'evento

PHP in_array :  verifica il contenuto

Dato l'array precedente, supponiamo di voler verificare che l'utente Simone sia uno dei partecipanti, possiamo utilizzare la funzione in_array() che prende in ingresso due parametri:

  1. il valore ricercato;
  2. l'array in cui cercare.

Vediamo un esempio:

$partecipanti = ['Simone', 'Gabriele', 'Renato', 'Giuseppe'];
if (in_array('Simone', $partecipanti)) {
echo "Simone è uno dei partecipanti";
} else {
echo "Simone non parteciperà all'evento";
}

Nel nostro caso l'output sarà: Simone è uno dei partecipanti.

PHP shuffle :  mescolare gli elementi di un array

Nel caso in cui avessimo la necessità di mescolare gli elementi all'interno di un array, abbiamo a disposizione la funzione shuffle() che fa esattamente al caso nostro:

$partecipanti = ['Simone', 'Gabriele', 'Renato', 'Giuseppe'];
shuffle($partecipanti);
print_r($partecipanti);

L'output che avremo sarà simile al seguente, ovviamente non uguale perché il risultato è randomico:

Array
(
[0] => Giuseppe
[1] => Simone
[2] => Renato
[3] => Gabriele
)

PHP array_reverse :  invertire l'ordine

Un'altra funzione molto comune che possiamo applicare ad un array è quella di invertire l'ordine degli elementi. Vediamo un esempio con la funzione array_reverse():

$partecipanti = ['Simone', 'Gabriele', 'Renato', 'Giuseppe'];
$ordine_inverso = array_reverse($partecipanti);
print_r($ordine_inverso);

Il risultato sarà:

Array
(
[0] => Giuseppe
[1] => Renato
[2] => Gabriele
[3] => Simone
)

Unire due array con il Merge

Dati due o più array, attraverso la funzione array_merge() possiamo avere un unico array che contiene gli elementi di ognuno di essi. L'inserimento avviene in maniera da aggiungere gli elementi in coda all'array precedente. In caso di valori uguali l'ultimo valore andrà a sovrascrivere i precedenti.

Vediamo qualche esempio per chiarire i concetti:

$partecipanti_lista_A = ['Simone', 'Gabriele'];
$partecipanti_lista_B = ['Renato', 'Giuseppe'];
$partecipanti_lista_C = ['Maria', 'Daniela'];
$partecipanti = array_merge($partecipanti_lista_A, $partecipanti_lista_B, $partecipanti_lista_C);
print_r($partecipanti);

La funzione array_merge() restituirà quindi il seguente risultato:

Array
(
[0] => Simone
[1] => Gabriele
[2] => Renato
[3] => Giuseppe
[4] => Maria
[5] => Daniela
)

Vediamo cosa succede se abbiamo array con valori uguali. Prendiamo come esempio array con chiavi alfanumeriche così da avere un esempio esplicito del funzionamento:

$partecipanti_lista_A = [
'Simone' => [
'anni' => 29,
'citta' => 'Roma'
],
'Gabriele' => [
'anni' => 24,
'citta' => 'Roma'
]
];
$partecipanti_lista_B = [
'Renato' => [
'anni' => 27,
'citta' => 'Catania'
],
'Simone' => [
'anni' => 24,
'citta' => 'Forlì'
]
];
$partecipanti = array_merge($partecipanti_lista_A, $partecipanti_lista_B);
print_r($partecipanti);

Osservando con attenzione i due array noteremo sicuramente che ci sono due chiavi con valore Simone. In questo caso il risultato sarà un array di soli tre elementi e non quattro e il valore di quella chiave è l'ultimo in ordine di inserimento:

Array
(
[Simone] => Array
(
[anni] => 24
[citta] => Forlì
)
[Gabriele] => Array
(
[anni] => 24
[citta] => Roma
)
[Renato] => Array
(
[anni] => 27
[citta] => Catania
)
)

Estrarre una porzione di un array con Slice

Nel caso in cui volessimo estrarre solo alcuni elementi da un array possiamo usare la funzione array_slice() che prende in ingresso tre parametri:

  1. l'array;
  2. l'offset, ovvero l'elemento da cui iniziare l'estrazione;
  3. la lunghezza, ovvero il numero di elementi da estrarre a partire dall'offset.

Vediamo un esempio:

$array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$output = array_slice($array, 0, 3);
print_r($output);

Abbiamo scelto di estrarre 3 elementi a partire dal primo, il risultato sarà:

Array
(
[0] => 1
[1] => 2
[2] => 3
)

Estrarre le chiavi o i valori da un array multidimensionale

Dato un array multidimensionale con coppie chiave/valori abbiamo a disposizione due funzioni, array_keys() e array_values(), che ci permettono rispettivamente di restituire un array di chiavi e di valori dell'array.

$array = [
'Simone' => 29,
'Marco' => 28,
'Michele' => 35,
'Luca' => 22
];
$nomi = array_keys($array);
$anni = array_values($array);
print_r($nomi);
print_r($anni);

L'output dei due array sarà:

Array
(
[0] => Simone
[1] => Marco
[2] => Michele
[3] => Luca
)
Array
(
[0] => 29
[1] => 28
[2] => 35
[3] => 22
)

Ti consigliamo anche