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 № 1Su 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;
}