Estaba buscando lo mismo y me di cuenta de que, una vez más, mi forma de pensar es diferente porque soy de la vieja escuela. Voy hasta BASIC y PERL y a veces olvido lo fácil que son las cosas en PHP.
Acabo de hacer esta función para tomar todas las configuraciones de la base de datos donde son 3 columnas. setkey, item (key) & valor (valor) y colóquelos en una matriz llamada configuraciones usando la misma clave/valor sin usar push como en el ejemplo anterior.
Bastante fácil & simple en realidad
// Get All Settings
$settings=getGlobalSettings();
// Apply User Theme Choice
$theme_choice = $settings['theme'];
.. etc etc etc ....
function getGlobalSettings(){
$dbc = mysqli_connect(wds_db_host, wds_db_user, wds_db_pass) or die("MySQL Error: " . mysqli_error());
mysqli_select_db($dbc, wds_db_name) or die("MySQL Error: " . mysqli_error());
$MySQL = "SELECT * FROM systemSettings";
$result = mysqli_query($dbc, $MySQL);
while($row = mysqli_fetch_array($result))
{
$settings[$row['item']] = $row['value']; // NO NEED FOR PUSH
}
mysqli_close($dbc);
return $settings;
}
Así como los demás puestos explican ... en PHP que no hay necesidad de "empujar" una matriz cuando se utiliza
Clave => Valor
Y ... No es necesario definir primero la matriz.
$ array = array();
No es necesario definir o presionar. Simplemente asigne $ array [$ key] = $ value; Es automáticamente un impulso y una declaración al mismo tiempo.
Debo agregar que por razones de seguridad, (P) oor (H) elpless (P) rotection, I significa programación para Dummies, me refiero a PHP .... jejeje Sugiero que solo use este concepto para lo que destinado a. Cualquier otro método podría ser un riesgo de seguridad. ¡Allí, hizo mi descargo de responsabilidad!
No lo entiendo. ¿No es esta la forma normal de agregar elementos en una matriz? – rgin
@rgin: Sí, lo es. Pero a veces extrañas la solución obvia cuando estás obsesionado con otra cosa (como 'array_push'). :) – Jonik
¿Cómo agregar varias claves y valores a una matriz? por ejemplo, tengo [indexname1] = $ value1 y [indexname2] = $ value2, y quiero agregarlos a $ arrayname –