Зміна довжини масиву
ЗавданняНеобхідно модифікувати довжину масиву, зробивши його більшою або меншою за поточну довжину.
РішенняДля розширення масиву застосовується функція 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 )