如何将 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]);
我有一个用 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]);