如何从PHP中的Json数据中删除额外的数组

时间:2016-10-28 14:52:00

标签: php arrays json

我想从此JSON" data"中删除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"
       }
  ]
}

2 个答案:

答案 0 :(得分:2)

您可以通过将reset映射到data的元素,然后重新编码为JSON来删除每个用户对象周围的额外数组图层。

$data = json_decode($json);
$data->data = array_map('reset', $data->data);
$json = json_encode($data);

当然,如果你自己创建这个JSON,你应该避免创建这个结构,而不是在事后改变它。

答案 1 :(得分:0)

<?php

$foo = json_decode($yourjson);
$data = [];
foreach($foo->data as $array) $data = array_merge($data, $array);
$foo->data = $data;
$yourjson = json_encode($foo);

编辑使用array_merge + Oriented object