
- •Фукції для роботи з масивами і операції над масивами Функції для роботи з масивами
- •Функція list()
- •Функція array()
- •Операції над масивами Сортування масивів
- •Сортування масиву за значеннями з допомогою функцій asort() і arsort():
- •Сортування по ключам за допомогою функцій ksort() і krsort():
- •Сортування по ключам за допомогою функції uksort():
- •Сортування за значеннями за допомогою функції uasort()
- •Перевертання масиву за допомогою функції array_reverce()
- •Сортування списку за допомогою функцій sort() і rsort()
- •Перемішування списку за допомогою функції shuffle()
- •Операції з ключами і значеннями масиву
- •Злиття масивів
- •Функція array_merge()
- •Отримання частини масиву
- •Вставка та видалення елементів масивів
- •Змінні та масиви
- •Створення списку - діапазону чисел
- •Лічильник елементів масиву
- •Видалення масиву і його елементів
- •Перетворення в масив (тип array)
- •Порівняння масивів
- •Оператори, що працюють з масивами:
- •Деякі корисні практичні приклади по роботі з масивами
Вставка та видалення елементів масивів
Ми вже знаємо кілька операторів, які відповідають за вставку і видалення елементів. Наприклад, оператор [] (порожні квадратні дужки) додає елемент в кінець масиву, привласнюючи йому числовий ключ, а оператор unset() разом з витягуванням по ключу видаляє потрібний елемент. Мова PHP підтримує і багато інших функцій, які іноді буває зручно використовувати.
<?php
array_push(alist &$Arr, mixed $var1 [, mixed $var2, …])
?>
Ця функція додає до списку $Arr елементи $var1, $var2 і т.д. Вона присвоює їм числові індекси - точно так само, як це відбувається для стандартних []. Якщо вам потрібно додати всього один елемент, напевно, простіше і буде скористатися цим оператором:
<?php
array_push($Arr, 1000); // викликаємо функцію ...
$Arr[] = 100; // те ж саме, але коротше
?>
Зверніть увагу, що функція array_push() сприймає масив, як стек, і додає елементи завжди в його кінець. Вона повертає нове число елементів у масиві.
<?php
array_pop(list &$Arr)
?>
Функція array_pop(), є протилежністю array_push(), знімає елемент з "вершини" стека (тобто бере останній елемент списку) і повертає його, видаливши після цього його з $Arr. За допомогою цієї функції ми можемо будувати конструкції, що нагадують стек. Якщо список $Arr був порожній, функція повертає пустий рядок.
<?php
array_unshift(list &$Arr, mixed $var1 [, mixed $var2, …])
?>
Функція array_unshift дуже схожа на array_push(), але додає перераховані елементи не в кінець, а в початок масиву. При цьому порядок проходження $var1, $var2 і т. д. залишається тим же, тобто елементи як би "всувають" в список ліворуч. Новим елементам списку, як зазвичай, призначаються числові індекси, починаючи з 0; при цьому всі ключі старих елементів масиву, які також були числовими, змінюються (найчастіше вони збільшуються на число значень, що вставляються). Функція повертає новий розмір масиву. Ось приклад її застосування:
<?php
$A=array(10,"a"=>20,30);
array_unshift($A,"!","?");
// Тепер $A === array (0 =>"!", 1 =>"?", 2 => 10, a => 20, 3 => 30)
mixed array_shift(list &$Arr)
?>
Функція mixed array_shift витягує перший елемент масиву $Arr і повертає його. Вона сильно нагадує array_pop(), але тільки отримує початковий, а не кінцевий елемент, і також проводить досить сильний "струс" всього масиву: адже при отриманні першого елемента доводиться коректувати всі числові індекси у всіх елементів що залишилися...
<?php
array_unique (array $Arr)
?>
Функція array_unique() повертає масив, складений з усіх унікальних значень масиву $Arr разом з їх ключами. У результуючий масив поміщаються перші зустрічні пари ключ => значення:
<?php
$input=array("a" => "green", "red", "b" => "green", "blue", "red");
$result=array_unique($input);
// Тепер $result === array ("a" => "green", "red", "blue");
<?php
array_splice(array &$Arr, int $offset [, int $len] [, int $Repl])
?>
Функція array_splice, так само як і array_slice(), повертає підмасив $Arr, починаючи з індексу $offset максимальної довжини $len, але, разом з тим, вона робить і іншу корисну дію. А саме - вона заміняє тільки що зазначені елементи на те, що знаходиться в масиві $Repl (або просто видаляє, якщо $Repl не зазначений). Параметри $offset і $len задаються так само, як і у функції substr() - тобто, вони можуть бути і від'ємними, в цьому випадку відлік починається від кінця масиву. Ось деякі приклади:
<?php
$input=array("red", "green", "blue", "yellow");
array_splice($input,2);
// Тепер $input === array ("red", "green")
array_splice($input,1, -один);
// Тепер $input === array ("red", "yellow")
array_splice($input, -1, 1, array("black", "maroon"));
// Тепер $input === array ("red", "green", "blue", "black", "maroon")
array_splice($input, 1, count($input), "orange");
// Тепер $input === array ("red", "orange")
?>
Останній приклад показує, що як параметр $Repl ми можемо вказати і звичайне значення рядка, а не масив з одного елемента.