array_splice în PHP

Scoate o bucată dintr-un tablou și, opțional, pune alte elemente în locul ei.

Sintaxă
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array

Ce face array_splice

array_splice modifică direct tabloul: șterge elementele dintr-o anumită poziție și poate insera altele în locul lor. Returnează elementele scoase.

Cu $length egal cu 0 nu șterge nimic, doar inserează. Așa adaugi un element în mijlocul unui tablou. Cheile numerice sunt renumerotate după operație.

Parametri

Parametru Descriere
$array Tabloul modificat direct.
$offset Poziția de la care începe. Un număr negativ se numără de la sfârșit.
$length Opțional. Câte elemente se șterg. Fără el, se șterge tot până la final.
$replacement Opțional. Elementul sau tabloul de elemente inserat în locul celor șterse.

Ce returnează

Un tablou cu elementele scoase.

Exemple

Exemplul 1: Ștergerea unor elemente din mijloc

<?php
$zile = ["luni", "marți", "miercuri", "joi", "vineri"];

$scoase = array_splice($zile, 1, 2);
echo "Scoase: " . implode(", ", $scoase) . "\n";
echo "Rămase: " . implode(", ", $zile);

Rezultat

Scoase: marți, miercuri
Rămase: luni, joi, vineri

Exemplul 2: Inserare fără ștergere

Cu lungimea 0, array_splice doar inserează la poziția dată.

<?php
$pasi = ["Comandă", "Livrare"];

array_splice($pasi, 1, 0, ["Plată", "Confirmare"]);
print_r($pasi);

Rezultat

Array
(
    [0] => Comandă
    [1] => Plată
    [2] => Confirmare
    [3] => Livrare
)

Exemplul 3: Înlocuirea unui element

<?php
$echipa = ["Ana", "Mihai", "Ioana"];

array_splice($echipa, 1, 1, "Radu");
echo implode(", ", $echipa);

Rezultat

Ana, Radu, Ioana

Greșeli frecvente

  • Salvezi rezultatul crezând că este tabloul nou: $lista = array_splice($lista, 1, 1);. Rezultatul conține doar elementele scoase.
  • Folosești unset și te miri de „gaura” din chei. array_splice($t, $i, 1) șterge elementul și renumerotează cheile.

Comenzi înrudite

  • array_slice: Extrage o bucată dintr-un tablou, fără să modifice tabloul original.
  • unset: Șterge o variabilă sau un element dintr-un tablou.
  • array_shift / array_unshift: Scoate primul element dintr-un tablou (array_shift) sau adaugă elemente la început (array_unshift).