array_splice-funktio
Funktio array_splice leikkaa pois ja palauttaa
osan taulukosta. Samalla leikattu osa
katoaa taulukosta. Leikatun osan tilalle
voidaan lisätä uusia elementtejä.
Ensimmäisenä parametrina määritetään leikattava taulukko. Toisella parametri määrittää, mistä elementistä leikkaaminen aloitetaan, ja kolmas - kuinka monta elementtiä leikataan. Kolmas parametri voi olla negatiivinen - tässä tapauksessa laskenta alkaa lopusta (-1 - viimeinen elementti, -2 - toiseksi viimeinen jne.). Kolmatta parametria ei tarvitse lainkaan määrittää - tässä tapauksessa taulukko leikataan aina loppuun asti.
Viimeisellä valinnaisella parametrilla voidaan määrittää poistettujen elementtien tilalle lisättävien elementtien taulukko.
Syntaksi
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Esimerkki
Leikataan elementit ensimmäisestä (indeksi
0), 3 kappaletta:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Koodin suorituksen tulos:
['a', 'b', 'c']
Tällöin taulukko $arr näyttää tältä:
['d', 'e']
Esimerkki
Leikataan elementit toisesta (indeksi
1), 3 kappaletta:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Koodin suorituksen tulos:
['b', 'c', 'd']
Tällöin taulukko $arr näyttää tältä:
['a', 'e']
Esimerkki
Leikataan elementit toisesta (indeksi 1) taulukon loppuun asti. Tätä varten kolmatta parametria ei kirjoiteta:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Koodin suorituksen tulos:
['b', 'c', 'd', 'e']
Tällöin taulukko $arr näyttää tältä:
['a']
Esimerkki
Leikataan elementit toiseksi viimeisestä,
2 kappaletta. Tätä varten toinen parametri
asetetaan arvoon -2 (toiseksi viimeisen
elementin sijainti):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Koodin suorituksen tulos:
['d', 'e']
Tällöin taulukko $arr näyttää tältä:
['a', 'b', 'c']
Esimerkki
Leikataan elementit toisesta (indeksi
1), 2 kappaletta, ja niiden tilalle lisätään
elementit 1, 2, 3:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Koodin suorituksen tulos:
['b', 'c']
Tällöin taulukko $arr näyttää tältä:
['a', 1, 2, 3, 'd', 'e']
Esimerkki
Ei leikata mitään,
vaan yksinkertaisesti lisätään elementit 1, 2,
3 alkaen sijainnista 1. Tätä
varten kolmas parametri asetetaan nollaan:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Koodin suorituksen tulos:
[]
Tällöin taulukko $arr näyttää tältä:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Katso myös
-
funktion
array_slice,
joka leikkaa osan taulukosta muuttamatta itse taulukkoa