Справочник по PHP : Функции работы с данными : Работа с массивами : Получение и удаление части массива

Материал из Справочник Web-языков.

Перейти к: навигация, поиск
Главная  ::. PHP  ::. Функции работы с данными  ::. Работа с массивами  ::. Получение и удаление части массива

[править] array_slice

Получение части массива.

Синтаксис:

array array_slice(array arr, int offset [, int lenght])

Функция array_slice() возвращает часть ассоциативного массива arr, начиная с элемента со смещением (номером) offset от начала и длиной lenght (если последний параметр не задан, до конца массива).

Параметры offset и lenght задаются по точно таким же правилам, как и аналогичные параметры в функции substr(). А именно, если offset>0, то последовательность будет начинаться с элемента, имеющего позицию offset от начала массива, а если <0, то отсчет производится от конца массива. Надо отметить, что первый элемент имеет нулевую позицию, а последний (-1).

Если указать length>0, то это число возвращаемых в массиве элементов, а если length<0, то это позиция последнего возвращаемого элемента в массиве arr от его конца.

Пример использования функции array_slice():

<?php
$input 
= array("a""b""c""d""e");
$output array_slice($input2);        // "c", "d", "e"
$output array_slice($input2, -1);    // "c", "d"
$output array_slice($input, -21);    // "d"
$output array_slice($input03);     // "a", "b", "c"
?>

Функция поддерживается PHP 4, PHP 5

[править] array_splice

Удаляет часть массива или заменяет ее частью другого массива.

Синтаксис:

array array_splice(array arr, int offset [, int lenght [, int replacement]])

Функция array_splice(), также как и array_slice(), возвращает подмасcив arr начиная с индекса offset максимальной длины lenght, но, вместе с тем, она делает и другое полезное действие. А именно, она заменяет только что указанные элементы на то, что находится в массиве replacement (или просто удаляет, если replacement не указан).

Если offset>0, то последовательность будет начинаться с элемента, имеющего позицию offset от начала массива, а если <0, то отсчет производится от конца массива. Надо отметить, что первый элемент имеет нулевую позицию, а последний (-1).

Если указать length>0, то это число возвращаемых в массиве элементов, а если length<0, то это позиция последнего возвращаемого элемента в массиве arr от его конца.

В качестве примера укажем следующие эквивалентыне замены:

array_push($input$x$y)     array_splice($inputcount($input), 0, array($x$y))
array_pop($input)     array_splice($input, -1)
array_shift($input)     array_splice($input, -1)
array_unshift($input$x$y)     array_splice($input00, array($x$y))
$a[$x] = $y     array_splice($input$x1$y)

Пример использования функции array_splice():

<?php
$input 
= array("red""green""blue""yellow");
array_splice($input2);
// $input is now array("red", "green")

$input = array("red""green""blue""yellow");
array_splice($input1, -1);
// $input is now array("red", "yellow")

$input = array("red""green""blue""yellow");
array_splice($input1count($input), "orange");
// $input is now array("red", "orange")

$input = array("red""green""blue""yellow");
array_splice($input, -11, array("black""maroon"));
// $input is now array("red", "green",
//          "blue", "black", "maroon")

$input = array("red""green""blue""yellow");
array_splice($input30"purple");
// $input is now array("red", "green",
//          "blue", "purple", "yellow");
?>

Функция поддерживается PHP 4, PHP 5

Личные инструменты
1.8941988945