2011-07-18 19 views
6

Dinamik olarak N (N tanımayan) öğelerini içeren bir dizi oluşturmak istiyorum.php - dinamik olarak, n null elemanları ile başlatılan bir dizi oluştur

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

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

gibi bana bir şey dönmek bir işlev

public function create_array($num_elements){ 

    ..... 
} 

gibi

şey zaten yaklaşık array_fill ve basit foreach döngü düşündüm.

Başka herhangi bir çözüm var mı?

+0

Kendinize ve başkalarına bir iyilik yapın ve sadece array_fill kullanın – xzyfer

+0

** 'array_fill' ** sizin için en iyi çözüm? – alesdario

+1

'array_fill' çekirdek işlevdir - hiçbir şey bundan daha hızlı olmayacaktır. En iyi çözümden ne beklerdiniz? –

cevap

19

Aslında array_fill bir çağrı yeterli olmalıdır:

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

Bu en belirgin çözüm ve en iyisi (benim testim için) çünkü diğer çözümler bundan daha hızlı değil! – Melsi

0

array_fill ve foreach çalışmıyor musunuz? Tabii

, akla gelen basit çözüm

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

array_fill da çalışması gerekir ise:

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

array_fill Basit kullanımı en kolay çözüm gibi görünse:

$arr = array_fill($start_at, $num_elements, null); 
0
array_fill(0, $element, null); 
Bu php işlevini kullanarak 210

, başlangıç ​​dizini 0 ile dizi oluşturabilir ve hepsi boş değer olacaktır.

İlgili konular