Зміна довжини масиву

ЗавданняНеобхідно модифікувати довжину масиву, зробивши його більшою або меншою за поточну довжину.

РішенняДля розширення масиву застосовується функція array_pad():

// починаємо з трьох $array = array('apple', 'banana', 'coconut');

// збільшуємо до п'яти $array = array_pad($array, 5, '');

Тепер значення функції count($array) дорівнює 5, а останні два елементи містять порожні рядки.

Щоб зменшити масив, можна використовувати функцію array_splice():

// немає привласнення масиву $array array_splice($array, 2);

З масиву $array видаляється все, крім двох елементів.

ОбговоренняРозмір масивів у PHP заздалегідь не оголошується, тому можна змінювати його під час справи.

Для заповнення масиву використовуйте функцію array_pad(). Як перший аргумент виступає сам масив, що заповнюється. Наступний аргумент – це розмір та напрямок заповнення. Для заповнення масиву праворуч використовуйте позитивне число; Для заповнення масиву вліво використовуйте негативне число. Третій аргумент – це значення, яке присвоюється новоствореним елементам.

Функція повертає модифікований масив і не торкається вихідного.

Нижче наведено кілька прикладів:

// створюємо чотириелементний масив зі значенням 'dates' праворуч $array = array('apple', 'banana', 'coconut'); $array = array_pad($array, 4, 'dates'); print_r($array); Array ( [0] => apple [1] => banana [2] => coconut [3] => dates ) // створюємо шестиелементний масив зі значенням 'zucchinis' зліва $array = array_pad($array, -6, 'zucchini'); print_r($array); Array ( [0] => zucchini [1] => zucchini [2] => apple [3] => banana >[4] =>coconut [5] => dates )

Будьте уважні. Вираз array_pad($array, 4, 'dates') забезпечує довжину масиву, принаймні, рівну 4, а не додає 4 нових елементів. У цьому випадку, якщо масив $array вже містить чотири або більше елементів, функція array_pad() поверне незмінений масив $array.

Також, якщо оголосити значення четвертого елемента, $array[4]:

$array = array('apple', 'banana', 'coconut'); $array[4] = 'dates'; то в результаті вийде чотириелементний масив з індексами 0, 1, 2, and 4: Array ( [0] => apple [1] => banana [2] => coconut [4] => dates )

По суті, PHP перетворює його на асоціативний масив, який, виявляється, має цілі ключі.Функція array_splice(), на противагу функції array_pad(), змінює вихідний масив з одного або з іншого боку.

Вона повертає отриманий після накладення зміни масив. Ось чому масиву $array не надається значення. Однак, як і у випадку з array_pad(), можна застосувати накладання праворуч або зліва. Тому виклик функції array_splice() зі значенням –2 видалить два елементи з кінця:

// Створюємо чотириелементний масив $array = array('apple', 'banana', 'coconut', 'dates');

// скорочуємо до трьох елементів array_splice($array, 3);

// видаляємо останній елемент, еквівалентно виклик функції array_pop() array_splice($array, -1);

// єдині фрукти, що залишилися - це яблуко і банан print_r($array); Array ( [0] => apple [1] => banana )