Metodi per leggere un array in php

Metodi per leggere un array in php

Metodi per leggere un array in php

Che cosa vedremo

  • Funzione reset()
  • Funzione each()
  • Costrutto list()

Introduzione

Sebbene foreach() sia la migliore scelta per iterare in un array, ci sono altri metodi per leggere un array in php e si basano sulla combinazione del costrutto list() e della funzione each(), vediamo un esempio:

Il risultato è il seguente:

#0 = Mario
#1 = Francesco
#2 = Giuseppe

Funzione reset()

L’interazione in PHP avviene ricorrendo a un puntatore interno, appartenente all’array che tiene traccia della posizione corrente nell’ambito dell’interazione. A differenza di foreach(), se volete usare altri metodi per leggere un array in php e quindi volete usare la funzione each per iterare in un array dovete usare reset() prima di iniziare l’interazione. In generale sarà comunque più pratico utilizzato foreach(), evitando di dover badare a questo dettaglio della tecnica each().

Funzione each()

La funzione each restituisce la coppia chiave/valore corrente e fa avanzare il puntatore intero all’elemento successivo. Una volta raggiunta la fine dell’array restituisce il valore booleano false. La coppia chiave/volore è restituita sotto dorma di un array composto da quattro elementi: 0 e “chiave” che hanno il valore della chiave e gli elementi 1 e “value” cui è assegnato il valore effettivo. Il motivo di questa duplicazione è che per accede a questi elementi singolarmente è preferibile, di norma, utilizzare nomi significativi come $elemento[“chiave”] e $elemento[“value”].

L’output di questo esempio è:

Giacomo ha 28 anni

Ora vedremo il funzionamento del costrutto list() e sarà più facile capire il motivo della presenza delle posizioni 0 e 1.

Costrutto list()

Il costrutto list() è un modo per assegnare posizioni multiple di un array() a diverse variabili in una sola operazione:

list($variabile1,$variabile2...) = $array;

Alla prima variabile dell’elenco è assegnato il valore dell’array corrispondente alla posizione 1 e così via. Pertanto il costrutto si traduce nella serie di dichiarazioni PHP:

$variabile1 = $array[0];
$variabile2 = $array[1];
$variabile3 = $array[2];
...

Come si è detto, gli indici 0 e 1 restituiti da each() sono usati dal costrutto list(). Probabilmente avrete già compreso il funzionamento della combinazione dell’array $giocatori:

Ciò che accade nel ciclo while è che, nel corso del ciclo, each() restituisce l’array dalla coppia chiave/valore della posizione corrente che, esaminato con print_r(), si risolve nel seguente array:

array(
   [1] => Mario
    [value] => Mario
    [0] => 0
    [chiave] => 0
 
)

A quel punto il costrutto list() assegna la posizione 0 dell’array a $chiave e la posizione 1 a $value.