puede - obtener el valor de un array php
Cómo empujar tanto el valor como la clave en la matriz (16)
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 una función para hacer esto? (porque array_push
no funcionará de esta manera)
Ejemplo array_merge () ....
$array1 = array("color" => "red", 2, 4); $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4); $result = array_merge($array1, $array2); print_r($result);
Array ([color] => verde, [0] => 2, [1] => 4, [2] => a, [3] => b, [forma] => trapecio, [4] => 4 ,)
Esta es la solución que puede ser útil para ti.
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'');
Cuando lo tiras. El resultado como este
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 forma de pensar es diferente porque soy de la vieja escuela. Regreso a BASIC y PERL y, a veces, me olvido de lo fáciles que son las cosas en PHP.
Acabo de hacer esta función para tomar todas las configuraciones de la base de datos donde hay 3 columnas. setkey, item (key) & value (value) y colóquelos en una matriz llamada configuración usando la misma clave / valor sin usar push como arriba.
Bastante fácil y simple realmente
// 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í que como explican las otras publicaciones ... En PHP no hay necesidad de "PULSAR" una matriz cuando está usando
Clave => Valor
Y ... Tampoco es necesario definir primero la matriz.
$ array = array ();
No es necesario definir o empujar. Simplemente asigne $ array [$ clave] = $ valor; Es automáticamente un push y una declaración al mismo tiempo.
Debo agregar que, por razones de seguridad, (P) oor (H) sin rotura (P) rotection, quiero decir Programación para Dummies, me refiero a PHP ... jejeje, te sugiero que solo uses este concepto para lo que pretendía. Cualquier otro método podría ser un riesgo de seguridad. ¡Allí, hice mi descargo de responsabilidad!
Exactamente lo que dijo Pekka ...
Alternativamente, probablemente puedas usar array_merge así si quisieras:
array_merge($_GET, array($rule[0] => $rule[1]));
Pero preferiría el método de Pekka probablemente porque es mucho más simple.
La forma más sencilla:
$GET = array();
$key = ''one=1'';
parse_str($key, $GET);
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.
Me pregunto por qué el método más simple aún no se ha publicado:
$arr = [''company'' => ''Apple'', ''product'' => ''iPhone''];
$arr += [''version'' => 8];
Es lo mismo que fusionar dos matrices con http://php.net/manual/en/function.array-merge.php
No, no hay array_push()
equivalente para matrices asociativas porque no hay forma de determinar la siguiente clave.
Tendrás que usar
$arrayname[indexname] = $value;
Puede usar el operador de unión ( +
) para combinar arreglos y mantener las claves del arreglo agregado. Por ejemplo:
<?php
$arr1 = array(''foo'' => ''bar'');
$arr2 = array(''baz'' => ''bof'');
$arr3 = $arr1 + $arr2;
print_r($arr3);
// prints:
// array(
// ''foo'' => ''bar'',
// ''baz'' => ''bof'',
// );
Así que podrías hacer $_GET += array(''one'' => 1);
.
Hay más información sobre el uso del operador de unión vs array_merge
en la documentación en http://php.net/manual/en/function.array-merge.php .
Un poco raro, pero esto me funcionó.
$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>";
}
Un poco tarde, pero si no te importa una matriz anidada, puedes adoptar 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 imprime json_encode ($ main_array) que se verá como [{"Key": "10"}]
array_push ($ GET, $ GET [''one''] = 1);
funciona para mi
hola tuve el mismo problema, encuentro esta solución, debería 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
Al insertar un valor en una matriz, se crea automáticamente una clave numérica para él.
Cuando agrega un par clave-valor a una matriz, ya tiene la clave, no necesita que se cree uno para usted. Presionar una tecla en una matriz no tiene sentido. Solo puede 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;
$arr = array("key1"=>"value1", "key2"=>"value");
print_r($arr);
// imprime la matriz [''key1'' => "value1", ''key2'' => "value2"]
array_push($arr, [''key1'' => $value1, ''key2'' => value2]);
Esto funciona bien. Crea la clave con su valor en la matriz.