Cómo insertar tanto el valor como la clave en una matriz PHP [duplicado]

Resuelto Gal asked hace 54 años • 21 respuestas

Eche 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, ...] */

¿Existe alguna función para hacer esto? (porque array_pushno funcionará de esta manera)

Gal avatar Jan 01 '70 08:01 Gal
Aceptado

No, no existe un array_push()equivalente para las matrices asociativas porque no hay forma de determinar la siguiente clave.

Tendrás que usar

$arrayname[indexname] = $value;
Pekka avatar Jan 23 '2010 00:01 Pekka

Insertar un valor en una matriz crea automáticamente una clave numérica para él.

Al agregar un par clave-valor a una matriz, ya tiene la clave, no necesita que le creen una. Insertar una clave 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;
deceze avatar May 28 '2010 03:05 deceze

Puede utilizar el operador de unión ( +) para combinar matrices y conservar las claves de la matriz agregada. Por ejemplo:

<?php

$arr1 = array('foo' => 'bar');
$arr2 = array('baz' => 'bof');
$arr3 = $arr1 + $arr2;

print_r($arr3);

// prints:
// array(
//   'foo' => 'bar',
//   'baz' => 'bof',
// );

Entonces podrías hacerlo $_GET += array('one' => 1);.

Hay más información sobre el uso del operador union array_mergeen la documentación en http://php.net/manual/en/function.array-merge.php .

Charlie Schliesser avatar Jan 21 '2013 22:01 Charlie Schliesser