PHP : Estrarre un range di elementi da un array con array_slice()

php-logo

Ho affrontato l’argomento array in php in modo abbastanza generico. Vediamo di entrare meglio in dettaglio parlando della comoda funzione array_slice().

Sappiamo bene come si può leggere il singolo elemento di un array, ma a volte potrebbe esser utile lavorare ed estrarre solo un range di elementi di un array.

La funzione array_slice() permette, appunto, di estrarre un range di elementi con varie alternative.

Nella sua versione-base, la funzione è abbastanza semplice ed intuitiva.

$directors = array( “Alfred Hitchcock”, “Stanley Kubrick”, “Martin Scorsese”, “Fritz Lang” );

// Stampa “Array ( [0] => Stanley Kubrick [1] => Martin Scorsese )”
print_r( array_slice( $directors, 1, 2 ) );

Come notate, inizializzato un array di 4 elementi se ne vuole prelevare e stampare un range di soli 2. Abbastanza facile.

La posizione di un array non coincide sempre con il suo indice. Nel nostro caso, la posizione dell’elemento Alfred Hitchcock è 0, ma il suo indice potrebbe esser anche 125, ad esempio.

Utilizzando la funzione come nell’esempio precedente non verrebbe preservato il valore dell’indice relativo all’elemento che potrebbe, altresì, essere molto utile qualora l’indice fosse la chiave che punta ad un record di una tabella di un database.

Per preservarlo,invece, la funzione va usata così :

$directors = array( “Alfred Hitchcock”, “Stanley Kubrick”, “Martin Scorsese”, “Fritz Lang” );

// Stampa “Array ( [0] => Stanley Kubrick [1] => Martin Scorsese )”
print_r( array_slice( $directors, 1, 2,true ) );

E se fossimo in presenza di un array associativo del tipo :

$movie = array( “title” => “Rear Window”,
“director” => “Alfred Hitchcock”,
“year” => 1954,
“minutes” => 112 );

Nessun problema perché l’istruzione :

print_r( array_slice( $movie, 1, 2 ) );

consente di conservare i due indici associati :

Alfred Hitchcock

1954

Grazie a Elated per lo spunto!

Nessun commento.

Lascia un commento