Echa un vistazo a este código:
$GET = array();
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */
Estoy buscando algo como esto para que:
print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */
¿Hay alguna función para hacer esto? (porque array_push
no funcionará así)
Pulsando un valor en una matriz automáticamente se crea una clave numérica para ello.
Cuando se añade un par de claves-valores a una matriz, ya tienes la clave, no necesitas que se cree una para ti. Empujar una clave en una matriz no tiene sentido. Sólo puedes establecer el valor de la clave específica en la matriz.
// no key
array_push($array, $value);
// same as:
$array[] = $value;
// key already known
$array[$key] = $value;
Puedes usar el operador de unión (+
) para combinar matrices y guardar las claves de la matriz añadida.
Por ejemplo:
<?php
$arr1 = array('foo' => 'bar');
$arr2 = array('baz' => 'bof');
$arr3 = $arr1 + $arr2;
print_r($arr3);
// prints:
// array(
// 'foo' => 'bar',
// 'baz' => 'bof',
// );
1);`.
Hay's más información sobre el uso del operador de la unión vs array_merge
en la documentación en http://php.net/manual/en/function.array-merge.php.
Me gustaría añadir mi respuesta a la tabla y aquí está:
//connect to db ...etc
$result_product = /*your mysql query here*/
$array_product = array();
$i = 0;
foreach ($result_product as $row_product)
{
$array_product [$i]["id"]= $row_product->id;
$array_product [$i]["name"]= $row_product->name;
$i++;
}
//you can encode the array to json if you want to send it to an ajax call
$json_product = json_encode($array_product);
echo($json_product);
Espero que esto ayude a alguien
Esta es la solución que puede ser útil para u
Class Form {
# Declare the input as property
private $Input = [];
# Then push the array to it
public function addTextField($class,$id){
$this->Input ['type'][] = 'text';
$this->Input ['class'][] = $class;
$this->Input ['id'][] = $id;
}
}
$form = new Form();
$form->addTextField('myclass1','myid1');
$form->addTextField('myclass2','myid2');
$form->addTextField('myclass3','myid3');
El resultado es así
array (size=3)
'type' =>
array (size=3)
0 => string 'text' (length=4)
1 => string 'text' (length=4)
2 => string 'text' (length=4)
'class' =>
array (size=3)
0 => string 'myclass1' (length=8)
1 => string 'myclass2' (length=8)
2 => string 'myclass3' (length=8)
'id' =>
array (size=3)
0 => string 'myid1' (length=5)
1 => string 'myid2' (length=5)
2 => string 'myid3' (length=5)
Estaba buscando lo mismo y me di cuenta de que, una vez más, mi pensamiento es diferente porque soy de la vieja escuela. Me remonto a 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 sus son 3 columnas. setkey, item (clave) & value (valor) y colocarlas en un array llamado settings usando la misma clave/valor sin usar push como arriba.
Bastante fácil & simple realmente
// Obtener todos los ajustes $settings=getGlobalSettings();
// Aplicar la elección del tema del usuario $elección_de_tema = $ajustes['tema'];
.. 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 $configuración; }
Así que como los otros puestos de explicar ... En php no hay necesidad de "PUSH" una matriz cuando usted está usando
Clave => Valor
Y... tampoco es necesario definir el array primero.
$array=array();
No es necesario definir ni empujar. Sólo asigna $array[$clave] = $valor; Es automáticamente un push y una declaración al mismo tiempo.
Debo añadir que por razones de seguridad, (P)oor (H)elpless (P)rotection, me refiero a Programación para Dummies, me refiero a PHP.... jejeje te sugiero que solo utilices este concepto para lo que yo pretendía. Cualquier otro método podría ser un riesgo de seguridad. ¡Ya está, hecho mi descargo de responsabilidad!
Me pregunto por qué el método más simple no ha sido publicado todavía:
$arr = ['company' => 'Apple', 'product' => 'iPhone'];
$arr += ['version' => 8];
Es lo mismo que fusionar dos matrices con [array_merge
.][1]
Un poco tarde, pero si no te importa un conjunto anidado, podrías tomar este enfoque:
$main_array = array(); //Your array that you want to push the value into
$value = 10; //The value you want to push into $main_array
array_push($main_array, array('Key' => $value));
Para aclarar, si se produce json_encode($main_array) que se verá como [{"Key":"10"}]
Un poco raro, pero esto funcionó para mí
$array1 = array("Post Slider", "Post Slider Wide", "Post Slider");
$array2 = array("Tools Sliders", "Tools Sliders", "modules-test");
$array3 = array();
$count = count($array1);
for($x = 0; $x < $count; $x++){
$array3[$array1[$x].$x] = $array2[$x];
}
foreach($array3 as $key => $value){
$output_key = substr($key, 0, -1);
$output_value = $value;
echo $output_key.": ".$output_value."<br>";
}
Hola, tuve el mismo problema, encontré esta solución. Deberías usar dos matrices y luego combinarlas.
<?php
$fname=array("Peter","Ben","Joe");
$age=array("35","37","43");
$c=array_combine($fname,$age);
print_r($c);
?>
referencia : [w3schools][1]
Ejemplo array_merge()....
$array1 = array("color" =..; "rojo", 2, 4); $array2 = array("a", "b", "color" =..; "verde", "forma" =[]..; &cuadrado;trapezoide&cuadrado;, 4); $resultado = array_merge($array1, $array2); print_r($resultado);
Array([color] =>..; verde,[0] = ..; 2,[1] = ..; 4,[2] = ..; a,[3] =>..; b,[forma] = ..; trapezoide,[4] = ..; 4,)