Php - создать динамически массив, инициализированный N нулевыми элементами

Я хочу создать динамически массив с элементами N (без знаковых N).

Что-то вроде функции

public function create_array($num_elements){

     .....
}

которые возвращают мне что-то вроде

//call the function.... 
create_array(3);

//and the output is: 
array{
   0 => null
   1 => null
   2 => null
}

Я уже думал о array_fill и простеньком foreach.

Есть ли другие решения?

Ответ 1

На самом деле достаточно вызова array_fill:

//...
public function create_array($num_elements){
    return array_fill(0, $num_elements, null);
}
//..

var_dump(create_array(3));
/*
array(3) {
  [0]=> NULL
  [1]=> NULL
  [2]=> NULL
}
*/

Ответ 2

for ($i = 0; $i < $num_elements; $i++) {
    $array[$i] = null;
}

Ответ 3

Do array_fill и foreach не работают?

Конечно, самое простое решение, которое приходит на ум, - это

function create_array($num_elements) {
    $r = array();
    for ($i = 0; $i < $num_elements; $i++)
        $r[] = null;
    return $r;
}

array_fill также должен работать:

function create_array($num_elements) {
    return array_fill(0, $num_elements, null);
}

Ответ 4

Простое использование array_fill звучит как самое простое решение:

$arr = array_fill($start_at, $num_elements, null);

Ответ 5

array_fill(0, $element, null);

используя эту функцию php, вы можете создать массив с начальным индексом 0, и все будут иметь нулевое значение.

Ответ 6

В цикле foreach вы можете просто использовать range()