如何将 PHP 数组转换为 json 字符串

How to convert a PHP array into json string

我有一个用 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() 付款,但到目前为止没有成功。

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

如果你这样做:

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

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

首先你必须修改你的数组

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

然后创建新数组

echo json_encode(["data"=>$newData])

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

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

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