Funktionen array_splice
Funktionen array_splice afskærer og returnerer
en del af et array. Den afskårne del
forsvinder fra arrayet. I stedet for den afskårne del
kan nye elementer indsættes.
Den første parameter angiver arrayet, der skal skæres i. Den anden parameter angiver, fra hvilket element der skal startes med at skære, og den tredje - hvor mange elementer der skal skæres af. Den tredje parameter kan være negativ - i dette tilfælde starter optællingen fra slutningen (-1 - sidste element, -2 - næstsidste osv.). Den tredje parameter kan udelades helt - i dette tilfælde bliver arrayet skåret af til slutningen.
I den sidste valgfrie parameter kan et array af elementer angives, som vil blive indsat i stedet for de fjernede.
Syntaks
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Eksempel
Lad os skære elementer ud fra den første (har
nummer 0), 3 stykker:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Resultatet af kodeudførelsen:
['a', 'b', 'c']
Samtidig vil arrayet $arr se sådan ud:
['d', 'e']
Eksempel
Lad os skære elementer ud fra den anden (har
nummer 1), 3 stykker:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Resultatet af kodeudførelsen:
['b', 'c', 'd']
Samtidig vil arrayet $arr se sådan ud:
['a', 'e']
Eksempel
Lad os skære elementer ud fra den anden (har nummer 1) til slutningen af arrayet. For at gøre dette skriver vi ikke den tredje parameter:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Resultatet af kodeudførelsen:
['b', 'c', 'd', 'e']
Samtidig vil arrayet $arr se sådan ud:
['a']
Eksempel
Lad os skære elementer ud fra den næstsidste,
2 stykker. For at gøre dette sættes den anden parameter
til -2 (positionen for det næstsidste
element):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Resultatet af kodeudførelsen:
['d', 'e']
Samtidig vil arrayet $arr se sådan ud:
['a', 'b', 'c']
Eksempel
Lad os skære elementer ud fra den anden (har
nummer 1), 2 stykker, og i stedet indsætte
elementerne 1, 2, 3:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Resultatet af kodeudførelsen:
['b', 'c']
Samtidig vil arrayet $arr se sådan ud:
['a', 1, 2, 3, 'd', 'e']
Eksempel
Lad os ikke skære noget ud overhovedet,
men blot indsætte elementerne 1, 2,
3 startende fra position 1. For
at gøre dette sættes den tredje parameter til nul:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Resultatet af kodeudførelsen:
[]
Samtidig vil arrayet $arr se sådan ud:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Se også
-
funktionen
array_slice,
som afskærer en del af et array uden at ændre selve arrayet