В php как мне установить размер массива?

#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 или иное.. вы должны добавить некоторый элемент, чтобы изменить размер.