Eu tenho a seguinte matriz em PHP:
Array
(
[0] => Array
(
[id] => 0
[name] => name1
[short_name] => n1
)
[2] => Array
(
[id] => 2
[name] => name2
[short_name] => n2
)
)
Quero codificá-lo em JSON como uma matriz JSON, produzindo uma string como a seguinte:
[
{
"id":0,
"name":"name1",
"short_name":"n1"
},
{
"id":2,
"name":"name2",
"short_name":"n2"
}
]
Mas quando chamo json_encode
este array, obtenho o seguinte:
{
"0":{
"id":0,
"name":"name1",
"short_name":"n1"
},
"2":{
"id":2,
"name":"name2",
"short_name":"n2"
}
}
que é um objeto em vez de uma matriz.
Como posso json_encode
codificar meu array como um array, em vez disso?
0,2
forem importantes? Estou na mesma situação em que não consigo reindexar array.Array
emJSON
são apenas matrizes indexadas , portanto, a estrutura que você está tentando obter não é Json / Javascript válido.A matriz PHP Associatives são objetos em JSON, portanto, a menos que você não precise do índice, não poderá fazer tais conversões.
Se você deseja obter essa estrutura, pode fazer:
Will retorna algo como:
fonte
true transforma todas as propriedades em array (sequencial ou não)
fonte
json_encode
$serialized = json_encode($nonContiguousArray);
$unserialize = json_decode($serialized, true);
finalmente,finallySerializedInArrayFormat = json_encode($unserialize);
se é isso que você está pretendendo, você está certo, mas parecia uma solução um pouco cansativa.Tente isto,
fonte