69696

Отримання частини масиву

Лекция

Информатика, кибернетика и программирование

Дана функція повертає частину вказаного масиву, починаючи з вказаного зсуву від початку масиву. Вибірка елементів здійснюється підряд. Довжина результуючого масиву задається параметром Довжина, який є необов’язковим. Якщо цей параметр не вказаний, то вибірка елементів здійснюється до кінця початкового масиву.

Украинкский

2014-10-08

48.5 KB

0 чел.

Тема 16: Отримання частини масиву

Для отримання частини масиву використовується функція array_slice(). Їй потрібно передати три параметри:

| ім'я початкового масиву, з якого вибиратимуться елементи;

зсув від початку масиву, тобто скільки елементів від початку
масиву треба пропустити перед початком вибірки;

довжина, тобто кількість елементів, яку потрібно вибрати з
початкового масиву.

Дана функція повертає частину вказаного масиву, починаючи з вказаного зсуву від початку масиву. Вибірка елементів здійснюється підряд. Довжина результуючого масиву задається параметром Довжина, який є необов'язковим. Якщо цей параметр не вказаний, то вибірка елементів здійснюється до кінця початкового масиву.

Ось невеликі приклади:

$А =  array(xox,   ror,   tot,   pop,   mom);   //  задаємо початковий масив

$В   =   array_slice($A,2); // отримуємо   масив   $В,

// у   якому   містяться

// всі   елементи масиву   $А,

// починаючи з третьої  позиції

// (т.к.   два   треба   пропустити).

// Таким чином,   масив   $В

// міститиме   елементи

// tot,   pop,   mom.

$В  =   array_slice($A,0,2); // Отримуємо масив   $В,   у   якому

// містяться  два  елементи

// масиву   $А,   починаючи з першого

// (т.к.   треба  пропустити   0

// елементів).   Таким чином

// масив   $В  міститиме

// елементи     xox,   ror.

Параметри зсув і довжина можуть бути негативними — в цьому випадку відлік проводиться від кінця масиву:

$В   =   array_slice($A,2,-l); //   отримуємо   масив   $В,

//   що складається  з   елементів   tot, //   pop.

Функція array_spIice() схожа на функцію array_slice(). Їй потрібно передати ще один додатковий параметр — масив (назвемо його $R). Як і array_slice(), функція array_splice() повертає масив вказаної довжини, починаючи із зсуву $offset, але і замінює передані нею елементи на вміст масиву $R. B принципі, замість масиву $R можна вказати звичайне рядкове значення. Приклад:

$А   =   array("Audi","Mercedes", "Toyota", "Honda", "Renault"); array_splice($A,l,count($А),    "BMW"); //   $А   =   array("Audi","BMW");

7.8. Додавання і видалення елементів масиву

Додавання в кінець масиву

Раніше ми з вами освоїли простий спосіб додавання нових елементів в масив, здійснюваний за допомогою оператора []. Проте в останніх версіях PHP (починаючи з 4) передбачена функція array_push(), яка додає елементи в кінець масиву так само, як і оператора []. Наприклад, наступні два оператори аналогічні:

$А[]    =   5; array_push($А,5);

Може виникнути справедливе питання: «А навіщо потрібно два однакові способи робити одне і те ж?». Відповідь полягає в зручності. Якщо необхідно додати один елемент в масив (як в приведеному вище прикладі), то зручніше використовувати оператора []. Використання ж функції array_push() виправдовує себе тоді, коли нам потрібно додати в кінець масиву декілька нових елементів. Наприклад:

$А[] = 5;

$А[] = 7;

$А[] = 9;

$А[] = 10;

$А[] = 15;

Натомість можна записати:

array_push($A,    5,7,9,10,15);

Примітка.

Функція array_push(), крім всього іншого, повертає новий розмір масиву. Тобто, якщо крім того, щоб додати нові елементи в масив, вам потрібно дізнатися і його нову довжину, то можна записати $D = array_push($A, 5, 7, 9, 10, 15). Таким чином, нова довжина масиву буде привласнена змінною $D.

Видалення останнього елементу списку

Функція array_pop() протилежна функції array_push(). Вона «виштовхує» вершину списку (останній елемент списку). Іншими словами, функція array_pop() повертає значення останнього елементу масиву і видаляє його із списку.

Функції array_pop() потрібно передати всього один параметр — ім'я масиву (списку):

$A = array(xox, ror, tot pop, mom);

$T=array_pop($A);      // змінній $Т привласнили

// значення mom, а масив $A

// позбувся цього останнього

// елементу і тепер складається з

// елементів xox, ror, tot, pop.

array pop($A);         // масив $А ще раз позбувся останнього

// елементу і тепер

// складається з елементів xox, ror, tot.

Примітка.

За допомогою функцій array_push() і array_pop() ми можемо будувати структури LIFO (Last In First Out — «останній увійшов — перший вийшов»), що нагадують стік. Структури типу стек широко застосовуються в програмуванні. Класичне застосування стека — зворотний польський запис, який використовується для розбору арифметичних виразів і обчислення їх значення.

Додавання в початок списку. Видалення першого елементу списку

Функції array_unshift() і array_shift() схожі на функції array_push()

і array_pop(), але тільки працюють не з кінцем списку, а з його початком. Функція array_unshift() додає елементи в початок списку, а функція array_shift() повертає значення першого елементу списку і видаляє його із списку (видаляє «голову» списку):

$А = array(3,4,5) ;

array_unshift($A, 1,2);   // отримуємо $А = array(l,2,3,4,5)

array_shift($A);         // отримуємо $А = array(2,3,4,5);

Примітка.

Функції array_unshift() і array_shift() корисно використовувати, якщо ви хочете побудувати чергу типа FIFO (First In First Out — «перший увійшов — перший вийшов»). Черга необхідна для послідовної обробки елементів масиву. Стік і черга в мовах З і Pascal є основними динамічними структурами. Поськолькудліна масивів в PHP обмежена вільними системними ресурсами, потреба в стеку і черзі зникає. Функції для організації стека і черги були написані виключно для зручності програміста — раптом ви, програмуючи на З, звикли працювати саме із стеком або з чергою?

Функція array_unique()

Функція array_unique() призначена для витягання унікальних значень масиву разом з ключами цих значень. Ось приклад застосування цієї функції:

$Arr = array("a"=>"AAA","b"="BBB","c","d","e"="BBB", "d");

$Unique_Arr = array_unique($Arr);

// ?UniqueArr = array("a"=>"AAA","b"="BBB","c","d");


 

А также другие работы, которые могут Вас заинтересовать

21992. Западные славяне 61.5 KB
  начинается серия войн с Византией велись они с переменным успехом но в целом удачно для Болгарии. престиж Болгарии как международной державы был высок. Послов Болгарии за императорским столом сажали выше чем послов германского императора Оттона I. в Болгарии появилось богомильское движение дуализм.
21993. Индия в IV-VI-VII-XII вв. 50 KB
  Упадок империи Гуптов в Индии явился рубежом отделяющим древность от средневековья. Индии. вождем эфталитов стал Торомана который овладел Гандхарой областью на северозападе Индии затем двинулся в пределы самой империи. Инд частью Центральной Индии совр.
21994. Индия в XII-XVII вв. 74.5 KB
  Завоеванные индийские земли были включены в состав гос. земель державы Гуридов и Мухаммед Гури как их верховный собственник стал раздавать эти земли в условное феодальное держание икта своим военачальникам поставив над ними в качестве наместника Кутбаддина Айбека. Военачальники которым он роздал индийские земли в феодальное держание отказались признать нового правителя Газни своим господином и создали на территории Северной Индии собственное государство получившее название по имени своей столицы Делийский султанат 12061526 гг....
21995. Иран в V-VII – X- XIII вв. 50.5 KB
  Сасанидский Иран крупнейшее государство Передней Азии. Эти изделия вывозились в страны Средиземноморья Азии Китай. Азии. Азии.
21996. Средневековая культура 107 KB
  Не откажите прислать с подателем сего письма деньги а также туфли и чулки. появилось деление на семестры большой ординарный учебный период magnus ordinaries с октября день св. Поскольку смех был изгнан из официальной жизни то поэтому появились праздники дураков которые проводились на Новый год день невинноубиенных младенцев Богоявление Иванов день. Здесь и страдающий Христос окруженный мальчикамиангелами; Тайная вечеря где присутствовал и Фома Аквинский борьба архангела Михаила с демонами источник бьющий вином гроб...
21997. Средневековый город 107.5 KB
  речь идет о функциях и свойствах города его месте в средневековом обществе. В средние века официально городом считалось поселение получившее от властей статус города закрепленный особыми грамотами имеющее внешние атрибуты стены ров укрепления много улиц жителей ратушу собор церкви большие здания порт рынки административные учреждения скопление властей уличную толпу. Существует свыше десятка теорий происхождения средневекового города: романистическая идея непрерывного развития города от римских времен до нового времени...
21998. Столетняя война (1137-1453) 60.5 KB
  Можно рассматривать и как феодальную войну за наследство земли но и как освободительную борьбу о стороны Франции и как первый общеевропейский международный конфликт. Но во Франции сославшись на LXIX титул Lex Salica лилии не прядут престол отдали представителю боковой линии французского дома Капетингов племяннику Филиппа Красивого Филиппу Валуа Филипп VI 13281350 и кузену Карла IV. Эдуард III начал войну в которую втянулись империя Фландрия Арагон Португалия на стороне Англии Кастилия Шотландия папство на стороне...
21999. Страны Северной Европы в XVI-первой половине XVII вв. 120.5 KB
  В Швеции в 1570е гг. Это было основным занятием населения в прибрежных областях Швеции и Финляндии особенно на севере. среди натуральных податей Северной Швеции до 60 составляла рыба. власти поощряли возделывание заброшенных земель но в Швеции начался конфликт изза королевских лесов которые были захвачены крестьянамилесокрадами.
22000. Тридцатилетняя война 1618-1648 гг. 128.5 KB
  Интересы Габсбургов сталкивались также в Южной Германии. Рейне и угроза усиления католического лагеря в Германии таили предпосылки обострения конфликта Габсбургов с Францией. сохранения политической раздробленности Германии и всемерной поддержки внутренней борьбы происходившей в ней между протестантскими и католическими князьями. Французские политики стремились не допустить усиления Австрийских Габсбургов в Германии.