Funkcija array_splice
Funkcija array_splice iškerpa ir grąžina
masyvo dalį. Tuo pačiu iškirpta dalis
išnyksta iš masyvo. Vietoje iškirptos dalies
galima įterpti naujus elementus.
Pirmuoju parametru nurodomas masyvas pjovimui. Antruoju parametru nurodoma, nuo kurio elemento pradėti kirpimą, o trečiuoju - kiek elementų iškirpti. Trečiasis parametras gali būti neigiamas - tokiu atveju skaičiavimas prasidės nuo galo (-1 - paskutinis elementas, -2 - priešpaskutinis ir taip toliau). Trečiąjį parametrą galima visai nenurodyti - tokiu atveju masyvas bus iškirptas iki pat galo.
Paskutiniame neprivalomame parametre galima nustatyti ištrintų elementų masyvą, kuris bus įterptas vietoje pašalintų.
Sintaksė
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Pavyzdys
Iškirpkime elementus nuo pirmojo (turi
numerį 0), 3 vienetus:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Kodo vykdymo rezultatas:
['a', 'b', 'c']
Tuomet masyvas $arr atrodys taip:
['d', 'e']
Pavyzdys
Iškirpkime elementus nuo antrojo (turi
numerį 1), 3 vienetus:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Kodo vykdymo rezultatas:
['b', 'c', 'd']
Tuomet masyvas $arr atrodys taip:
['a', 'e']
Pavyzdys
Iškirpkime elementus nuo antrojo (turi numerį 1) iki masyvo galo. Tam trečiasis parametras nerašomas:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Kodo vykdymo rezultatas:
['b', 'c', 'd', 'e']
Tuomet masyvas $arr atrodys taip:
['a']
Pavyzdys
Iškirpkime elementus nuo priešpaskutinio,
2 vienetus. Tam antrasis parametras
nustatomas į -2 (priešpaskutinio
elemento pozicija):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Kodo vykdymo rezultatas:
['d', 'e']
Tuomet masyvas $arr atrodys taip:
['a', 'b', 'c']
Pavyzdys
Iškirpkime elementus nuo antrojo (turi
numerį 1), 2 vienetus, o mainais įterpkime
elementus 1, 2, 3:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Kodo vykdymo rezultatas:
['b', 'c']
Tuomet masyvas $arr atrodys taip:
['a', 1, 2, 3, 'd', 'e']
Pavyzdys
Nieko nebekirpkime,
o tiesiog įterpkime elementus 1, 2,
3 pradedant nuo pozicijos 1. Tam
trečiasis parametras nustatomas į nulį:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Kodo vykdymo rezultatas:
[]
Tuomet masyvas $arr atrodys taip:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Taip pat žiūrėkite
-
funkciją
array_slice,
kuri iškerpa masyvo dalį, nekeisdama pačio masyvo