✂️ 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
| Funzione | Azione | Modifica l’array originale |
|---|---|---|
| array_slice() | Estrae una porzione | No |
| array_splice() | Rimuove o sostituisce elementi | Sì |
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.
- Editor di codice PHP (VS Code, Notepad++)
- Server locale (XAMPP, MAMP, Laragon)
- Browser per visualizzare i risultati
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’
offsete lalength. - Prova a usare
preserve_keys = trueper osservare la differenza. - Cambia il valore della variabile
$paginaper visualizzare diverse “pagine” di dati. - Combina
array_slice()conarray_reverse()oshuffle()per creare effetti dinamici.