52568.fb2
Название: "Герой нашего времени"
Array ( [А.С. Пушкин] =>
Название: "Руслан и Людмила"
[Л.Н. Толстой] =>
Название: "Война и мир"
[М.Ю. Лермонтов] =>
Название: "Герой нашего времени")
Выделение подмассива
Функция array_slice
Поскольку массив – это набор элементов, вполне вероятно, потребуется выделить из него какой-нибудь поднабор. В PHP для этих целей есть функция array_slice. Ее синтаксис таков:
array_slice (массив,
номер_элемента [, длина])
Эта функция выделяет подмассив длины длина в массиве массив, начиная с элемента, номер которого задан параметром номер_элемента. Положительный номер_элемента указывает на порядковый номер элемента относительно начала массива, отрицательный – на номер элемента с конца массива.
<?php
$arr = array(1,2,3,4,5);
$sub_arr = array_slice($arr,2);
print_r($sub_arr);
/*
выведет Array ( [0] => 3 [1] =>4 [2] => 5 ),
т.е. подмассив, состоящий из элементов
3, 4, 5 */
$sub_arr = array_slice($arr,-2);
print_r($sub_arr);
// выведет Array ( [0] => 4 [1] => 5 ),
// т.е. подмассив, из элементов 4, 5
?>
Если задать параметр длина при использовании array_slice, то будет выделен подмассив, имеющий ровно столько элементов, сколько задано этим параметром. Длину можно указывать и отрицательную. В этом случае интерпретатор удалит с конца массива число элементов, равное модулю параметра длина.
<?php
$arr = array(1,2,3,4,5);
$sub_arr = array_slice($arr, 2, 2);
// содержит массив из элементов 3, 4
$sub = array_slice($arr,-3, 2);
// тоже содержит массив из элементов 3, 4
$sub1 = array_slice($arr,0, -1);
// содержит массив из
// элементов 1, 2, 3, 4
$sub2 = array_slice($arr,-4, -2);
// содержит массив из элементов 2, 3
?>
Функция array_chunk
Есть еще одна функция, похожая на array_slice() – это array_chunk(). Она разбивает массив на несколько подмассивов заданной длины. Синтаксис ее такой:
array_chunk ( массив, размер
[, сохранять_ключи])
В результате работы array_chunk() возвращает многомерный массив, элементы которого представляют собой полученные подмассивы. Если задать параметр сохранять ключи как true, то при разбиении будут сохранены ключи исходного массива. В противном случае ключи элементов заменяются числовыми индексами, которые начинаются с нуля.
Пример 7.15. У нас есть список приглашенных, оформленный в виде массива их фамилий. У нас имеются столики на три персоны. Поэтому нужно распределить всех приглашенных по трое.
<?php
$persons = array("Иванов", "Петров",