Funktsioon array_slice
Funktsioon array_slice lõikab ja tagastab
massiivi osa. Samal ajal massiiv ise ei muutu.
Esimese parameetrina määratakse lõigatav
massiiv. Teise parameetrina määratakse,
millisest elemendist lõikamist alustada, kolmanda
parameetriga - mitu elementi ära lõigata. Teine 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.
Viimane valikuline parameeter reguleerib
kas võtmeid lõikamisel säilitada, true -
säilitada, false (vaikimisi) - mitte säilitada.
Stringivõtmed säilivad sõltumata
selle parameetri väärtusest.
Süntaks
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
Näide
Lõikame välja elemendid esimesest (selle
number on 0), 3 tükki:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Koodi täitmise tulemus:
['a', 'b', 'c']
Näide
Lõikame välja elemendid teisest (selle
number on 1), 3 tükki:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1, 3);
var_dump($res);
?>
Koodi täitmise tulemus:
['b', 'c', 'd']
Näide
Lõikame välja 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_slice($arr, 1);
var_dump($res);
?>
Koodi täitmise tulemus:
['b', 'c', 'd', 'e']
Näide
Lõikame välja elemendid eelviimasest,
2 tükki. Selleks teine parameeter
seatakse väärtusele -2 (eelviimase
elemendi positsioon):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, -2, 2);
var_dump($res);
?>
Koodi täitmise tulemus:
['d', 'e']
Näide
Vaikimisi massiiv ei säilita võtmeid väljalõikamisel:
<?php
$arr = [1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'c'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Koodi täitmise tulemus:
['a', 'b', 'c']
Näide
Teeme nii, et võtmed säiliksid. Selleks määrame viimase parameetri väärtuseks true:
<?php
$arr = [1 => 'a', 2 => 'b', 3 => 'c'];
$res = array_slice($arr, 0, 3, true);
var_dump($res);
?>
Koodi täitmise tulemus:
[1 => 'a', 2 => 'b', 3 => 'c']
Näide
Stringivõtmed säilivad väljalõikamisel:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Koodi täitmise tulemus:
['a' => 1, 'b' => 2, 'c' => 3]
Vaata ka
-
funktsiooni
array_splice,
mis lõikab massiivi osa, muutes samal ajal massiivi ennast