Tengo la siguiente matriz en PHP:
Array
(
[0] => Array
(
[id] => 0
[name] => name1
[short_name] => n1
)
[2] => Array
(
[id] => 2
[name] => name2
[short_name] => n2
)
)
Quiero codificarlo JSON como una matriz JSON, produciendo una cadena como la siguiente:
[
{
"id":0,
"name":"name1",
"short_name":"n1"
},
{
"id":2,
"name":"name2",
"short_name":"n2"
}
]
Pero cuando llamo json_encode
a esta matriz, obtengo lo siguiente:
{
"0":{
"id":0,
"name":"name1",
"short_name":"n1"
},
"2":{
"id":2,
"name":"name2",
"short_name":"n2"
}
}
que es un objeto en lugar de una matriz.
¿Cómo puedo json_encode
codificar mi matriz como una matriz?
0,2
son importantes? Estoy en la misma situación en la que no puedo volver a indexar la matriz.Array
enJSON
son solo matrices indexadas , por lo que la estructura que está tratando de obtener no es Json / Javascript válido.La matriz PHP Associatives son objetos en JSON, por lo que, a menos que no necesite el índice, no puede hacer tales conversiones.
Si desea obtener dicha estructura, puede hacer:
Will devuelve algo como:
fuente
true convierte todas las propiedades en una matriz (secuencial o no)
fuente
json_encode
$serialized = json_encode($nonContiguousArray);
$unserialize = json_decode($serialized, true);
finalmentefinallySerializedInArrayFormat = json_encode($unserialize);
si esto es lo que pretendes, tienes razón, pero parecía una pequeña solución sin aliento.Prueba esto,
fuente