2011-07-18 22 views
6

Quiero crear dinámicamente una matriz con N (sin conocer N) elementos.php - crear, dinámicamente, una matriz inicializada con N elementos nulos

Algo así como una función

public function create_array($num_elements){ 

    ..... 
} 

que me regresar algo así como

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

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

ya he pensado en array_fill y un simple bucle foreach.

¿Hay alguna otra solución?

+0

hazle un favor a ti mismo y a todos los demás y simplemente utiliza array_fill – xzyfer

+0

es ** 'array_fill' ** la mejor solución para ti? – alesdario

+1

'array_fill' es una función central, nada será más rápido que eso. ¿Qué esperarías de la "mejor solución"? –

Respuesta

19

realidad una llamada a array_fill debe ser suficiente:

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

esta es la solución más obvia, y la mejor (para mi prueba) ya que las otras soluciones no son más rápidas que esta. – Melsi

0

No array_fill y foreach no funciona?

Por supuesto, la solución más sencilla que viene a la mente es

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

array_fill también debería funcionar:

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

uso simple de array_fill suena como la solución más fácil:

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

usando esta función php, puede crear una matriz con el índice inicial 0, y todos tendrán un valor nulo.

Cuestiones relacionadas