#php #arrays
#php #массивы
Вопрос:
Я просто хочу установить размер массива в php, без необходимости заполнять его какими-либо значениями. Как мне это сделать?
Комментарии:
1. Я думаю, что такой вещи не существует. В чем смысл такой настройки размера?
2. если вы сказали нам, почему вы этого хотели, возможно, будет ответ.
Ответ №1:
Используйте SplFixedArray для массива фиксированного размера:
$array = new SplFixedArray(3);
$array[0] = 1;
$array[1] = 2;
$array[2] = 3;
$array[3] = 4; // RuntimeException
Комментарии:
1. начиная с PHP 5.3. доступно
2. хорошей функцией является $array->toArray(), если вы хотите преобразовать объект обратно в массив
Ответ №2:
В PHP массивы — это действительно упорядоченные карты и, следовательно, имеют размер, равный количеству содержащихся в них элементов — если вы хотите создать пустой массив определенного размера, вам придется его чем-то заполнить.
Вы всегда можете заполнить его null
значениями, используя array_fill
:
$empty_arr = array_fill(0, $size, NULL);
Комментарии:
1. Спасибо. Очень полезно в качестве альтернативы циклу for для добавления заполнителей в CSV (переменное количество полей). Скрипт выдавал ошибку 200, но комбинация array_fill и implode позволила обойти это.
Ответ №3:
У массивов нет установленного размера, они динамические (хранятся не так, как в других языках, таких как C).
Если вы хотите указать массив с размером по соображениям производительности, посмотрите на:
SplFixedArray в стандартной библиотеке PHP.
Ответ №4:
Вы должны добавить элементы в массив, чтобы изменить размер. Независимо от того, имеет ли оно значение null или иное.. вы должны добавить некоторый элемент, чтобы изменить размер.