2011-07-18 3 views
6

N (N을 모르는 채로) 배열을 동적으로 만들고 싶습니다.php - N 개의 null 요소로 초기화 된 배열을 동적으로 생성합니다.

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

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

처럼 내게 뭔가를 반환하는 함수

public function create_array($num_elements){ 

    ..... 
} 

같은

뭔가 이미 약 array_fill 간단한 foreach 루프를 생각했습니다.

다른 해결책이 있습니까?

+0

자신과 다른 모든 사람들에게 부탁하고 그냥 array_fill을 사용하십시오 – xzyfer

+0

은 **'array_fill' **입니다. ** 가장 적합한 솔루션은 무엇입니까? – alesdario

+1

'array_fill'은 핵심 기능입니다 - 그보다 더 빠를 것은 없습니다. "최상의 솔루션"에서 무엇을 기대 하시겠습니까? –

답변

19

사실 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; 
} 
+1

이것은 가장 확실한 해결책이며, 다른 솔루션이 이보다 빠르지 않아서 (내 테스트를 위해) 가장 좋습니다! – Melsi

0

array_fillforeach이 작동하지 않아? 물론

는, 마음에 오는 가장 간단한 해결책은

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); 
} 
0

array_fill의 간단한 사용이 쉬운 솔루션 같은 소리 :

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

이 PHP 함수를 사용하면 시작 인덱스가 0 인 배열을 만들 수 있으며 모두 null 값을 갖습니다.