2

我有一个用while循环构建的PHP数组。我确实成功地将它转换为 JSON 字符串,但是输出不是我想要的,需要一些帮助才能正确处理:

我当前的代码:

while(!$sql_query->EOF){
     $data[] = array(
                'id'                => $id, 
                'name'              => $name,
                'title'             => $title
                );
$sql_query-> MoveNext(); }

echo json_encode($data);

我用我的代码得到的输出是这样的:

[
   {
     "id":"1",
     "name":"Nick",
     "title":"Office"
   },
   {
     "id":"2",
     "name":"Amy",
     "title":"Home"
   }
]

但是,我需要的结果是:

{
  "data": [
    [
      "1",
      "Nick",
      "Office"
    ],
    [
      "2",
      "Amy",
      "Home"
    ]
  ]
}

我厌倦了支付,array_values()但到目前为止没有成功。

有人可以在这里提出正确的方法吗?

4

3 回答 3

4

构建数组时,不要将键添加到值中,这将允许编码使用数组表示法,然后将"data"键添加为编码的一部分...

$data = [];
while(!$sql_query->EOF){
    $data[] = [ $id, $name,$title];
    $sql_query-> MoveNext(); 
}

echo json_encode(["data" => $data]);
于 2019-11-25T12:25:22.900 回答
2

如果您执行以下操作:

$result = (object)["data" => $data];
echo json_encode($data);

这将为您提供所需的输出。

于 2019-11-25T12:24:53.027 回答
2

首先你必须修改你的数组

$newData = [];
foreach($data as $item) {
    $newData[] = array_values($item);
}

然后创建新数组

echo json_encode(["data"=>$newData])
于 2019-11-25T12:25:18.873 回答