array_slice în PHP

Extrage o bucată dintr-un tablou, fără să modifice tabloul original.

Sintaxă
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array

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_slice cu array_splice. array_slice doar citește o bucată, array_splice o 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.