Изменение длины массива

Задача
Необходимо модифицировать длину массива, сделав его больше или меньше текущей длины.

Решение
Для расширения массива применяется функция 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
=> banana
=> coconut
=> dates
)
// создаем шестиэлементный массив со значением 'zucchinis' слева
$array = array_pad($array, -6, 'zucchini');
print_r($array);
Array
(
[0] => zucchini
=> zucchini
=> apple
=> banana
=> coconut
=> dates
)


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

Также, если объявить значение для четвертого элемента, $array:

$array = array('apple', 'banana', 'coconut');
$array = 'dates';
то в результате получится четырехэлементный массив с индексами 0,
1, 2, and 4:
Array
(
[0] => apple
=> banana
=> coconut
=> 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
=> banana
)
Теги:
array, массив, массива, splice, dates, функции, banana , заполнения, apple , Array , coconut, banana, apple, создаем, можно, элемента, используйте, значением, dates , coconut , print, функция, элементов, аргумент, zucchini , массиву, функцию, число, Функция, возвращает, случае, больше, длины, длину, обеспечивает
Добавлено: 21 Июля 2018 07:12:45 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...