/ / PHP Generate Array () from loop? - php, arrays, while-loop

PHP Generar Array () desde un bucle? - php, arrays, while-loop

Acabo de escribir esto, es la forma más eficiente de agregar arreglos a un arreglo preexistente.


$c=4;
$i=1;
$myarray = array();

while($i <= $c):
array_push($myarray, array("key" => "value"));
$i++;
endwhile;

echo "<pre><code>";
var_dump($myarray);
echo "</code></pre>";

Actualizar: ¿Cómo presionaría la clave y el valor, sin crear una nueva matriz?
así que esto array_push($myarray,"key" => "value");
no esta array_push($myarray, array("key" => "value"));

Respuestas

16 para la respuesta № 1

Su código tiene un par de cosas que pueden mejorarse:

Números magicos

Es una mala práctica asignar números mágicos como 4 y 1, en su lugar use constantes. Para este ejemplo, por supuesto, es excesivo pero aún es importante saberlo y usarlo.

Falta de llaves

Siempre use las llaves, esto hace que el código sea más legible.

Uso incorrecto del bucle while

Este no es un caso para un bucle while, si desea realizar un bucle un cierto número de veces, siempre use un bucle for.

Uso innecesario de array_push

No necesita empujar la matriz para agregar elementos a una matriz, puede y probablemente debería usar la función abreviada.

Resultado:

define("START", 1);
define("END", 4);

$myArray = array();


for ($i = START; $i < END; $i++)
{
$myArray[] = array("item" => "1 items");
}

4 para la respuesta № 2

Yo personalmente haría lo siguiente mirando su código:

$myarray = array();
for($i=0;$i<4;$i++){
$myarray[] = array("item" => "1 items");
}

De acuerdo a esta, array_push es un poco menos eficiente que $myarray[]


3 para la respuesta № 3

Si realmente solo necesita poner un cierto valor n veces en una matriz a partir de un determinado índice, puede usar array_fill:

$myarray = array_fill($i, $c, array("item" => "1 items"));

2 para la respuesta № 4

Tu ejemplo me parece bien, aunque probablemente reemplazarías tu array_push función llamada con:

$myarray[] = array("item" => "1 items");

Que "es" una sintaxis abreviada para array_push.

Actualizar: Para una matriz asociativa, simplemente haz:

$myarray["item"] = "1 items";

Aunque con su ejemplo, simplemente sobrescribirá el valor en cada iteración.


-1 para la respuesta № 5
for($i=1; $i < 10; $i++) {
$option[$i] = $i;
}