Le funzioni PHP per gestire gli array

11 novembre 2016

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);

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);

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);

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
)

Tutte le lezioni

1 ... 28 29 30 ... 44

Se vuoi aggiornamenti su Le funzioni PHP per gestire gli array inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su Le funzioni PHP per gestire gli array

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy