Wiki-учебник по веб-технологиям: PHP/ВыделениеПодмассива ...

Главная | |

Выделение подмассива


Оглавление документа

1. Функция 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
?>


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

Если задать параметр длина при использовании array_slice, то будет выделен подмассив, имеющий ровно столько элементов, сколько задано этим параметром.

Длину можно указывать и отрицательную. В этом случае интерпретатор удалит с конца массива число элементов, равное модулю параметра длина.

<?php
$arr 
= array(1,2,3,4,5);
$sub_arr array_slice($arr22);
// содержит массив из элементов 3, 4
$sub array_slice($arr,-32);
// тоже содержит массив из элементов 3, 4
$sub1 array_slice($arr,0, -1);
// содержит массив из
// элементов 1, 2, 3, 4
$sub2 array_slice($arr,-4, -2);
// содержит массив из элементов 2, 3
?>


Пример 7.14. Использование функции array_slice(). Вариант 2

2. Функция array_chunk


Есть еще одна функция, похожая на array_slice() – это array_chunk(). Она разбивает массив на несколько подмассивов заданной длины.
Синтаксис ее такой:
array_chunk ( массив, размер
[, сохранять_ключи])
В результате работы array_chunk() возвращает многомерный массив, элементы которого представляют собой полученные подмассивы.

Если задать параметр сохранять ключи как true, то при разбиении будут сохранены ключи исходного массива. В противном случае ключи элементов заменяются числовыми индексами, которые начинаются с нуля.

Пример 7.15. У нас есть список приглашенных, оформленный в виде массива их фамилий. У нас имеются столики на три персоны. Поэтому нужно распределить всех приглашенных по трое.

<?php
$persons 
= array("Иванов""Петров",
"Сидорова","Зайцева""Волкова");
$triples array_chunk($persons,3);
// делим массив на подмассивы
// по три элемента
foreach ($triples as $k => $table){
// выводим полученные тройки
echo "За столиком номер $k сидят: <ul>";
foreach (
$table as $pers)
echo 
"<li>$pers";
echo 
"</ul>";
}
?>


Пример 7.15. Использование функции array_chunk()

В результате получим:

за столиком номер 0 сидят:
за столиком номер 1 сидят: