Funktsioon array_splice
Funktsioon array_splice eemaldab ja tagastab
massiivi osa. Samal ajal eemaldatud osa
kaob massiivist. Eemaldatud osa asemele
saab sisestada uusi elemente.
Esimese parameetrina määratakse lõigatav massiiv. Teise parameetrina määratakse, millisest elemendist lõikamist alustada, ja kolmanda - mitu elementi eemaldada. Kolmas parameeter võib olla negatiivne - sel juhul algab loendamine lõpust (-1 - viimane element, -2 - eelviimane jne). Kolmandat parameetrit võib üldse mitte määrata - sel juhul lõigatakse massiiv kuni lõpuni.
Viimases valikulises parameetris saab määrata elementide massiivi, mis sisestatakse eemaldatute asemele.
Süntaks
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Näide
Eemaldame elemendid esimesest (selle
number on 0), 3 tükki:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Koodi täitmise tulemus:
['a', 'b', 'c']
Samal ajal näeb massiiv $arr välja selline:
['d', 'e']
Näide
Eemaldame elemendid teisest (selle
number on 1), 3 tükki:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Koodi täitmise tulemus:
['b', 'c', 'd']
Samal ajal näeb massiiv $arr välja selline:
['a', 'e']
Näide
Eemaldame elemendid teisest (selle number on 1) kuni massiivi lõpuni. Selleks kolmandat parameetrit me ei kirjuta:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Koodi täitmise tulemus:
['b', 'c', 'd', 'e']
Samal ajal näeb massiiv $arr välja selline:
['a']
Näide
Eemaldame elemendid eelviimasest,
2 tükki. Selleks teine parameeter
seatakse väärtusele -2 (eelviimase
elemendi positsioon):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Koodi täitmise tulemus:
['d', 'e']
Samal ajal näeb massiiv $arr välja selline:
['a', 'b', 'c']
Näide
Eemaldame elemendid teisest (selle
number on 1), 2 tükki, ja nende asemele sisestame
elemendid 1, 2, 3:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Koodi täitmise tulemus:
['b', 'c']
Samal ajal näeb massiiv $arr välja selline:
['a', 1, 2, 3, 'd', 'e']
Näide
Ärgem eemaldagem midagi,
vaid lihtsalt sisestame elemendid 1, 2,
3 alates positsioonist 1. Selleks
kolmas parameeter seatakse nulli:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Koodi täitmise tulemus:
[]
Samal ajal näeb massiiv $arr välja selline:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Vaata ka
-
funktsiooni
array_slice,
mis lõikab massiivi osa, muutmata seda massiivi