Отримання частини масиву Для отримання частини масиву використовується функція 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");