PHP

Estrai Elementi Con Array_slice()

Funzione array_slice() in PHP: estrarre una porzione di un array con esempi pratici e laboratorio guidato.


✂️ Estrarre una Parte di un Array con array_slice() in PHP

La funzione array_slice() serve per estrarre una porzione (una "fetta") di un array, restituendo un nuovo array contenente solo gli elementi desiderati. Non modifica l'array originale, ma ne restituisce una copia ridotta.


1. Sintassi

array_slice(array, offset, length, preserve_keys);
  • array → l'array di partenza.
  • offset → la posizione da cui iniziare l'estrazione (0 = primo elemento).
  • length (opzionale) → quanti elementi estrarre.
  • preserve_keys (opzionale) → se impostato su true, mantiene le chiavi originali.

2. Esempio base

<?php
$frutti = ["Mela", "Banana", "Arancia", "Pera", "Kiwi"];

$porzione = array_slice($frutti, 1, 3);

print_r($porzione);
?>

Array
(
    [0] => Banana
    [1] => Arancia
    [2] => Pera
)

L’estrazione parte dalla posizione 1 (cioè il secondo elemento) e prende 3 elementi.


3. Estrarre fino alla fine

Se ometti il parametro length, l’estrazione prosegue fino alla fine dell’array:


<?php
$numeri = [10, 20, 30, 40, 50];

$porzione = array_slice($numeri, 2);

print_r($porzione);
?>

Array
(
    [0] => 30
    [1] => 40
    [2] => 50
)

4. Offset negativo

Puoi anche usare un valore negativo per partire dalla fine:


<?php
$frutti = ["Mela", "Banana", "Arancia", "Pera", "Kiwi"];

$ultimi = array_slice($frutti, -2);

print_r($ultimi);
?>

Array
(
    [0] => Pera
    [1] => Kiwi
)

5. Mantenere le chiavi originali

Per impostazione predefinita, le chiavi vengono reindicizzate. Per mantenerle, imposta il quarto parametro a true:


<?php
$studenti = [
    1 => "Luca",
    3 => "Anna",
    5 => "Marco",
    7 => "Giulia"
];

$estratto = array_slice($studenti, 1, 2, true);

print_r($estratto);
?>

Array
(
    [3] => Anna
    [5] => Marco
)

6. Differenze con altre funzioni
FunzioneAzioneModifica l’array originale
array_slice()Estrae una porzioneNo
array_splice()Rimuove o sostituisce elementiSì


LABORATORIO

Estrarre una porzione di array con array_slice()

In questo laboratorio imparerai a estrarre parti specifiche di un array con array_slice(). Proverai a usare offset positivi, negativi e a mantenere le chiavi originali.


1 Estrarre una parte di un array

Crea un file chiamato array-slice.php e inserisci questo codice:


<?php
$frutti = ["Mela", "Banana", "Arancia", "Pera", "Kiwi"];

echo "<h3>Array originale:</h3>";
print_r($frutti);

$porzione = array_slice($frutti, 1, 3);

echo "<h3>Porzione estratta (da Banana a Pera):</h3>";
print_r($porzione);
?>
    

2 Estrarre gli ultimi elementi

Prova ora a prendere solo gli ultimi due elementi:


<?php
$numeri = [10, 20, 30, 40, 50];

$ultimi = array_slice($numeri, -2);

echo "<h3>Ultimi due elementi:</h3>";
print_r($ultimi);
?>
    

3 Mantenere le chiavi originali

Prova a estrarre elementi senza perdere le chiavi:


<?php
$studenti = [
    1 => "Luca",
    3 => "Anna",
    5 => "Marco",
    7 => "Giulia"
];

$estratto = array_slice($studenti, 1, 2, true);

echo "<h3>Estratto con chiavi preservate:</h3>";
print_r($estratto);
?>
    

4 Applicazione pratica: elenco paginato

Simuliamo la suddivisione di un elenco in pagine (paginazione):


<?php
$nomi = ["Anna", "Luca", "Marco", "Giulia", "Paolo", "Sara", "Marta", "Diego"];

$pagina = 2;
$per_pagina = 3;

$inizio = ($pagina - 1) * $per_pagina;

$paginati = array_slice($nomi, $inizio, $per_pagina);

echo "<h3>Pagina $pagina:</h3>";
foreach ($paginati as $n) {
    echo "- " . $n . "<br>";
}
?>
    

5 Test e analisi

  • Esegui gli script e modifica l’offset e la length.
  • Prova a usare preserve_keys = true per osservare la differenza.
  • Cambia il valore della variabile $pagina per visualizzare diverse “pagine” di dati.
  • Combina array_slice() con array_reverse() o shuffle() per creare effetti dinamici.