Funktio array_slice
Funktio array_slice leikkaa ja palauttaa
osan taulukosta. Itse taulukko ei muutu.
Ensimmäisenä parametrina määritetään leikattava
taulukko. Toisena parametrina määritetään,
mistä alkiosta leikkaus aloitetaan, ja kolmantena
- kuinka monta alkiota leikataan. Toinen parametri
voi olla negatiivinen - tässä tapauksessa
laskenta alkaa lopusta (-1 - viimeinen alkio,
-2 - toiseksi viimeinen jne.). Kolmatta parametria
ei tarvitse lainkaan määrittää - tässä tapauksessa
taulukko leikataan aina loppuun asti.
Viimeinen valinnainen parametri säätelee
säilytetäänkö avaimet leikkaamisen yhteydessä, true -
säilytä, false (oletusarvo) - älä säilytä.
Merkkijonoavaimet säilytetään riippumatta
tämän parametrin arvosta.
Syntaksi
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
Esimerkki
Leikataan alkiot ensimmäisestä (sen
numero on 0), 3 kappaletta:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Koodin suorituksen tulos:
['a', 'b', 'c']
Esimerkki
Leikataan alkiot toisesta (sen
numero on 1), 3 kappaletta:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1, 3);
var_dump($res);
?>
Koodin suorituksen tulos:
['b', 'c', 'd']
Esimerkki
Leikataan alkiot toisesta (sen
numero on 1) taulukon loppuun asti. Tätä varten kolmatta
parametria ei kirjoiteta:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1);
var_dump($res);
?>
Koodin suorituksen tulos:
['b', 'c', 'd', 'e']
Esimerkki
Leikataan alkiot toiseksi viimeisestä,
2 kappaletta. Tätä varten toinen parametri
asetetaan arvoon -2 (toiseksi viimeisen
alkion sijainti):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, -2, 2);
var_dump($res);
?>
Koodin suorituksen tulos:
['d', 'e']
Esimerkki
Oletusarvoisesti taulukko ei säilytä avaimia leikkaamisen yhteydessä:
<?php
$arr = [1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'c'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Koodin suorituksen tulos:
['a', 'b', 'c']
Esimerkki
Tehdään niin, että avaimet säilyvät. Tätä varten viimeinen parametri asetetaan arvoon true:
<?php
$arr = [1 => 'a', 2 => 'b', 3 => 'c'];
$res = array_slice($arr, 0, 3, true);
var_dump($res);
?>
Koodin suorituksen tulos:
[1 => 'a', 2 => 'b', 3 => 'c']
Esimerkki
Merkkijonoavaimet säilyvät leikkaamisen yhteydessä:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Koodin suorituksen tulos:
['a' => 1, 'b' => 2, 'c' => 3]
Katso myös
-
funktion
array_splice,
joka leikkaa osan taulukosta muuttaen samalla itse taulukkoa