Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
масиви.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
100.86 Кб
Скачать

Вставка та видалення елементів масивів

Ми вже знаємо кілька операторів, які відповідають за вставку і видалення елементів. Наприклад, оператор [] (порожні квадратні дужки) додає елемент в кінець масиву, привласнюючи йому числовий ключ, а оператор 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 ми можемо вказати і звичайне значення рядка, а не масив з одного елемента.