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

phparray_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<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, 0, 3);
  var_dump($res);
?>

Koodi täitmise tulemus:

php['a', 'b', 'c']

Näide

Lõikame välja elemendid teisest (selle number on 1), 3 tükki:

php<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, 1, 3);
  var_dump($res);
?>

Koodi täitmise tulemus:

php['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<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, 1);
  var_dump($res);
?>

Koodi täitmise tulemus:

php['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<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, -2, 2);
  var_dump($res);
?>

Koodi täitmise tulemus:

php['d', 'e']

Näide

Vaikimisi massiiv ei säilita võtmeid väljalõikamisel:

php<?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:

php['a', 'b', 'c']

Näide

Teeme nii, et võtmed säiliksid. Selleks määrame viimase parameetri väärtuseks true:

php<?php
  $arr = [1 => 'a', 2 => 'b', 3 => 'c'];
  
  $res = array_slice($arr, 0, 3, true);
  var_dump($res);
?>

Koodi täitmise tulemus:

php[1 => 'a', 2 => 'b', 3 => 'c']

Näide

Stringivõtmed säilivad väljalõikamisel:

php<?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:

php['a' => 1, 'b' => 2, 'c' => 3]

Vaata ka

  • funktsiooni array_splice,
    mis lõikab massiivi osa, muutes samal ajal massiivi ennast