Ce face array_slice
array_slice este pentru tablouri ce este substr pentru texte: returnează o parte din elemente, pornind de la o poziție. Tabloul original rămâne neschimbat.
Este folosit des pentru paginare (primele 10 articole, următoarele 10) sau pentru a lua primele ori ultimele N elemente. Cheile numerice sunt renumerotate, iar cheile text se păstrează mereu.
Parametri
| Parametru | Descriere |
|---|---|
$array |
Tabloul original. |
$offset |
Poziția de început. 0 este primul element. Un număr negativ se numără de la sfârșit. |
$length |
Opțional. Câte elemente să ia. Fără el, ia tot până la final. Un număr negativ lasă deoparte atâtea elemente de la sfârșit. |
$preserve_keys |
Opțional. true păstrează și cheile numerice originale. |
Ce returnează
Un tablou nou cu elementele extrase.
Exemple
Exemplul 1: Primele și ultimele elemente
<?php
$orase = ["Iași", "Cluj", "București", "Brașov", "Timișoara"];
print_r(array_slice($orase, 0, 2));
print_r(array_slice($orase, -2));
Rezultat
Array
(
[0] => Iași
[1] => Cluj
)
Array
(
[0] => Brașov
[1] => Timișoara
)
Exemplul 2: Paginare simplă
Pagina 2, cu câte 3 articole pe pagină, începe de la poziția 3.
<?php
$articole = ["A1", "A2", "A3", "A4", "A5", "A6", "A7"];
$pagina = 2;
$pePagina = 3;
$bucata = array_slice($articole, ($pagina - 1) * $pePagina, $pePagina);
echo implode(", ", $bucata);
Rezultat
A4, A5, A6
Exemplul 3: Păstrarea cheilor
<?php
$note = [10 => "Ana", 20 => "Mihai", 30 => "Ioana"];
print_r(array_slice($note, 1));
print_r(array_slice($note, 1, null, true));
Rezultat
Array
(
[0] => Mihai
[1] => Ioana
)
Array
(
[20] => Mihai
[30] => Ioana
)
Greșeli frecvente
- Confunzi
array_slicecuarray_splice.array_slicedoar citește o bucată,array_spliceo scoate din tabloul original. - Crezi că al treilea parametru este poziția de final. Este numărul de elemente.
Comenzi înrudite
array_splice: Scoate o bucată dintr-un tablou și, opțional, pune alte elemente în locul ei.array_chunk: Împarte un tablou în bucăți mai mici, cu un număr fix de elemente.substr: Extrage o bucată dintr-un text, pornind de la o anumită poziție.