/ //

Le funzioni PHP per gestire gli array - GM Multimedia

Vai ai contenuti

Menu principale:

Le funzioni PHP per gestire gli array

Guida PHP



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


Contare gli elementi in un array
         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
         Verificare che un elemento sia contenuto in un array
         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.


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
				)


Invertire l'ordine degli elementi
         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);
				Copy
				Il risultato sarà:
				Array
				(
				    [0] => Giuseppe
				    [1] => Renato
				    [2] => Gabriele
				    [3] => Simone
				)


Unire due array
         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);
				Copy
				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
         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);
				Copy
				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);
				Copy
				L'output dei due array sarà:
				Array
				(
				    [0] => Simone
				    [1] => Marco
				    [2] => Michele
				    [3] => Luca
				)
				Array
				(
				    [0] => 29
				    [1] => 28
				    [2] => 35
				    [3] => 22
				)
				
Visitatori online:
Sei il nostro visitatore n°:
© - Copyright 2015. - Tutti i diritti riservati - G.M. Multimedia
Torna ai contenuti | Torna al menu