Необходимо модифицировать длину массива, сделав его больше или меньше текущей длины.
Для расширения массива применяется функция 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, и 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
)