2011-07-18 48 views
6

Tôi muốn tạo mảng động với các phần tử N (không biết N).php - tạo, động, một mảng được khởi tạo với các phần tử N null

Cái gì đó như một hàm

public function create_array($num_elements){ 

    ..... 
} 

mà trả lại cho tôi một cái gì đó giống như

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

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

Tôi đã nghĩ về array_fill và đơn giản foreach vòng lặp.

Có giải pháp nào khác không?

+0

làm cho bạn và mọi người khác có lợi và chỉ sử dụng array_fill – xzyfer

+0

là ** 'array_fill' ** giải pháp tốt nhất cho bạn? – alesdario

+1

'array_fill' là một chức năng cốt lõi - không có gì sẽ nhanh hơn. Những gì bạn mong đợi từ "giải pháp tốt nhất"? –

Trả lời

19

Trên thực tế một cuộc gọi đến array_fill nên là đủ:

//... 
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

đây là giải pháp rõ ràng nhất và tốt nhất (đối với thử nghiệm của tôi) vì các giải pháp khác không nhanh hơn thế này! – Melsi

0

Đừng array_fillforeach không hoạt động?

Tất nhiên, giải pháp đơn giản nhất mà nói đến cái tâm là

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

array_fill cũng nên làm việc:

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

sử dụng đơn giản của array_fill vẻ như là giải pháp đơn giản nhất:

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

sử dụng hàm php này, bạn có thể tạo mảng với chỉ mục bắt đầu 0 và tất cả sẽ có giá trị null.

Các vấn đề liên quan