Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функция array_chunk

Функция 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() (html, txt)

Если задать параметр длина при использовании 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?>

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

Есть еще одна функция, похожая на 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() (html, txt)

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

за столиком номер 0 сидят:• Иванов• Петров• Сидороваза столиком номер 1 сидят:• Зайцева• Волкова
<== предыдущая лекция | следующая лекция ==>
Применение функции ко всем элементам массива | Сумма элементов массива
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 337; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.