Saya memiliki array berikut di PHP:
Array
(
[0] => Array
(
[id] => 0
[name] => name1
[short_name] => n1
)
[2] => Array
(
[id] => 2
[name] => name2
[short_name] => n2
)
)
Saya ingin JSON menyandikannya sebagai array JSON, menghasilkan string seperti berikut:
[
{
"id":0,
"name":"name1",
"short_name":"n1"
},
{
"id":2,
"name":"name2",
"short_name":"n2"
}
]
Tetapi ketika saya memanggil json_encode
array ini, saya mendapatkan yang berikut:
{
"0":{
"id":0,
"name":"name1",
"short_name":"n1"
},
"2":{
"id":2,
"name":"name2",
"short_name":"n2"
}
}
yang merupakan objek, bukan array.
Bagaimana saya bisa json_encode
mengenkode array saya sebagai array?
0,2
itu penting? Saya dalam situasi yang sama di mana saya tidak dapat mengindeks ulang array.Array
di hanyaJSON
array yang diindeks , jadi struktur yang Anda coba dapatkan bukanlah Json / Javascript yang valid.Array Asosiasi PHP adalah objek di JSON, jadi kecuali Anda tidak memerlukan indeks, Anda tidak dapat melakukan konversi seperti itu.
Jika Anda ingin mendapatkan struktur seperti itu, Anda dapat melakukan:
Akan mengembalikan sesuatu seperti:
sumber
true mengubah semua properti menjadi array (berurutan atau tidak)
sumber
json_encode
$serialized = json_encode($nonContiguousArray);
$unserialize = json_decode($serialized, true);
akhirnyafinallySerializedInArrayFormat = json_encode($unserialize);
jika ini yang Anda inginkan, Anda benar, tetapi sepertinya solusi yang sedikit bertele-tele.Coba ini,
sumber