Dê uma olhada neste código:
$GET = array();
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */
Estou procurando algo assim para que:
print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */
Existe uma função para fazer isso? (porque array_push
não funcionará dessa maneira)
$arrayname = array('indexname1' => $value1, 'indexname2' => $value2);
os definiria como os únicos itens$arrayname
. Se você já$arrayname
configurou e deseja manter seus valores, tente$arrayname += $anotherarray
. Lembre-se de que todas as chaves existentes na primeira matriz serão substituídas pela segunda.$a = array("name" => "John"); $a += array("name" => "Tom");
isso$a["name"]
será "John"Empurrando um valor para uma matriz cria automaticamente uma chave numérica para ele.
Ao adicionar um par de valor-chave a uma matriz, você já tem a chave, não precisa ser criado para você. Pressionar uma chave em uma matriz não faz sentido. Você só pode definir o valor da chave específica na matriz.
fonte
Você pode usar o operador union (
+
) para combinar matrizes e manter as chaves da matriz adicionada. Por exemplo:Então você poderia fazer
$_GET += array('one' => 1);
.Há mais informações sobre o uso do operador union vs
array_merge
na documentação em http://php.net/manual/en/function.array-merge.php .fonte
array_merge()
e+
é quando as duas matrizes contêm valores no mesmo+
operador de chave ignora o valor da segunda matriz (não substitui), também não renumera / reindexa as chaves numéricas ...Gostaria de adicionar minha resposta à tabela e aqui está ela:
espero que isso ajude alguém
fonte
Exatamente o que Pekka disse ...
Como alternativa, você provavelmente pode usar array_merge assim se quiser:
Mas eu preferiria o método de Pekka provavelmente porque é muito mais simples.
fonte
Gostaria de saber por que o método mais simples ainda não foi publicado:
fonte
array_merge
e a união da matriz (+=
) se comportar da maneira oposta, ou seja, array_merge respeitará o valor da segunda matriz e a união da matriz respeitará o valor da primeira matriz.Esta é a solução que pode ser útil para você
Quando você despeja. O resultado assim
fonte
Eu estava apenas procurando a mesma coisa e percebi que, mais uma vez, meu pensamento é diferente porque sou da velha escola. Volto ao BASIC e PERL e às vezes esqueço como as coisas são fáceis no PHP.
Acabei de fazer essa função para tirar todas as configurações do banco de dados onde estão três colunas. setkey, item (chave) e valor (valor) e coloque-os em uma matriz chamada configurações usando a mesma chave / valor sem usar push, como acima.
Muito fácil e simples realmente
Assim como os outros posts explicam ... No php não há necessidade de "PUSH" um array quando você estiver usando
Chave => Valor
E ... Também não há necessidade de definir a matriz.
$ array = array ();
Não precisa definir ou pressionar. Apenas atribua $ array [$ key] = $ value; É automaticamente um envio e uma declaração ao mesmo tempo.
Devo acrescentar que, por razões de segurança, (P) ou (H) rotações indefesas (P), quero dizer Programação para Leigos, quero dizer PHP .... hehehe, sugiro que você use esse conceito apenas para o que pretendia. Qualquer outro método pode ser um risco de segurança. Lá, fez o meu aviso!
fonte
Isso funciona muito bem. cria a chave com seu valor na matriz
fonte
$arr
matriz existente .Um pouco tarde, mas se você não se importa com uma matriz aninhada, pode seguir esta abordagem:
Para esclarecer, se você gerar json_encode ($ main_array), será semelhante a [{"Key": "10"}]
fonte
Um pouco estranho, mas isso funcionou para mim
fonte
// imprime matriz ['chave1' => "valor1", 'chave2' => "valor2"]
fonte
oi eu tive o mesmo problema eu acho que esta solução você deve usar duas matrizes, em seguida, combinar os dois
referência: w3schools
fonte
A maneira simples:
http://php.net/manual/de/function.parse-str.php
fonte
Para adicionar à primeira posição com
key
evalue
fonte
Para enviar uma "chave" e "valor" a uma matriz existente, você pode usar o
+=
operador de atalho.Veja este exemplo muito simples:
O resultado de
print_r($GET)
será:fonte
Exemplo 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);
Matriz ([cor] => verde, [0] => 2, [1] => 4, [2] => a, [3] => b, [forma] => trapézio, [4] => 4 ,)
fonte
Funciona para mim.
fonte
$GET['one']=1
, usa o valor de retorno dessa instrução (= 1, o rvalue) e, em seguida, é executadoarray_push($GET, 1)
. Resultado = [0] -> 1, [um] -> 1Eu escrevi uma função simples:
para que eu possa "upsert" novo elemento facilmente:
fonte
Há um ótimo exemplo já dado aqui. Basta adicionar um exemplo simples para enviar elementos de matriz associativa para o índice de índice numérico raiz.
fonte
Eu costumo fazer isso:
fonte