Funktionen array_splice
Funktionen array_splice skär av och returnerar
en del av en array. Samtidigt försvinner den avskurna delen
från arrayen. Istället för den avskurna delen
kan nya element sättas in.
Den första parametern anger arrayen som ska skäras. Den andra parametern anger från vilket element avskärningen ska börja, och den tredje - hur många element som ska skäras av. Den tredje parametern kan vara negativ - i så fall startar räkningen från slutet (-1 - sista elementet, -2 - näst sista elementet och så vidare). Den tredje parametern kan helt uteslutas - i så fall skärs arrayen ända till slutet.
I den sista valfria parametern kan man ange en array med element som kommer att sättas in istället för de borttagna.
Syntax
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Exempel
Låt oss klippa ut element från det första (har
nummer 0), 3 stycken:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Resultat av kodkörning:
['a', 'b', 'c']
Samtidigt kommer arrayen $arr att se ut så här:
['d', 'e']
Exempel
Låt oss klippa ut element från det andra (har
nummer 1), 3 stycken:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Resultat av kodkörning:
['b', 'c', 'd']
Samtidigt kommer arrayen $arr att se ut så här:
['a', 'e']
Exempel
Låt oss klippa ut element från det andra (har nummer 1) till slutet av arrayen. För att göra detta skriver vi inte den tredje parametern:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Resultat av kodkörning:
['b', 'c', 'd', 'e']
Samtidigt kommer arrayen $arr att se ut så här:
['a']
Exempel
Låt oss klippa ut element från det näst sista,
2 stycken. För att göra detta sätter vi den andra parametern
till -2 (position för det näst sista
elementet):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Resultat av kodkörning:
['d', 'e']
Samtidigt kommer arrayen $arr att se ut så här:
['a', 'b', 'c']
Exempel
Låt oss klippa ut element från det andra (har
nummer 1), 2 stycken, och istället sätta in
elementen 1, 2, 3:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Resultat av kodkörning:
['b', 'c']
Samtidigt kommer arrayen $arr att se ut så här:
['a', 1, 2, 3, 'd', 'e']
Exempel
Låt oss inte klippa ut någonting alls,
utan bara sätta in elementen 1, 2,
3 med start från position 1. För
att göra detta sätts den tredje parametern till noll:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Resultat av kodkörning:
[]
Samtidigt kommer arrayen $arr att se ut så här:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Se även
-
funktionen
array_slice,
som skär av en del av en array utan att ändra själva arrayen