Cómo insertar tanto el valor como la clave en una matriz PHP [duplicado]
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_push
no funcionará de esta manera)
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;
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;
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_merge
en la documentación en http://php.net/manual/en/function.array-merge.php .