我想从这个JSON"数据"中删除Extra数组。如何在PHP中做到这一点。是PHP中的任何函数解决了这个问题吗。?
{
"data": [
[
{
"user_id": "654120",
"user_name": "Jhon_Thomsona",
"user_image": null
}
],
[
{
"user_id": "1065040766943114",
"user_name": "Er Ayush_Gemini",
"user_image": "KP8LSHQFwk.png"
}
]
]
}
我希望我的最终阵列看起来像这样:
{
"data": [
{
"user_id": "654120",
"user_name": "Jhon_Thomsona",
"user_image": null
},
{
"user_id": "1065040766943114",
"user_name": "Er Ayush_Gemini",
"user_image": "KP8LSHQFwk.png"
}
]
}
您可以通过将reset
映射到data
的元素上,然后重新编码为JSON,来移除每个用户对象周围的额外数组层。
$data = json_decode($json);
$data->data = array_map('reset', $data->data);
$json = json_encode($data);
当然,如果您自己创建这个JSON,您应该避免从一开始就创建这个结构,而不是事后更改它。
<?php
$foo = json_decode($yourjson);
$data = [];
foreach($foo->data as $array) $data = array_merge($data, $array);
$foo->data = $data;
$yourjson = json_encode($foo);
EDIT使用array_merge+面向对象