php - динамически создать массив, инициализированный N пустыми элементами - PullRequest
11 голосов
/ 18 июля 2011

Я хочу динамически создать массив из 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 петля.

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

Ответы [ 6 ]

36 голосов
/ 18 июля 2011

На самом деле достаточно вызова 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
}
*/
3 голосов
/ 18 июля 2011
for ($i = 0; $i < $num_elements; $i++) {
    $array[$i] = null;
}
0 голосов
/ 08 июля 2019

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

0 голосов
/ 18 июля 2011
array_fill(0, $element, null);

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

0 голосов
/ 18 июля 2011

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

$arr = array_fill($start_at, $num_elements, null);
0 голосов
/ 18 июля 2011

Не работают 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);
}
...