我正在尝试构造一个包含内部对象的json对象。
我正在尝试以下代码 - 其中$ids
是包含一些ID的数组:
$result = array();
foreach ($ids as $value) {
$tempArray = getCustomOptions($host, $dbUsername, $dbPassword, $dbName, $_SESSION['companyId'], $value);
array_push($result, $tempArray);
}
print_r(json_encode($result));
getCustomOptions()
也使用以下脚本返回数组:
$dataArray = [];
while ($stmt->fetch()) {
$dataArray[] = array(
'id' => $id,
'description' => $description
);
}
问题是当我print_r(json_encode($result));
时,我得到以下结果:
[
[
{
"id":21,
"description":"Bshd"
},
{
"id":22,
"description":"Gandhi "
},
{
"id":23,
"description":"aaaa"
},
{
"id":24,
"description":"bbbbb"
}
],
[
{
"id":12,
"description":"121"
},
{
"id":13,
"description":"qwe"
},
{
"id":16,
"description":"wD2"
},
{
"id":17,
"description":"we"
}
],
[
]
]
正如您所看到的,它返回了数组中的一些数组,但我真正需要的是以下结构:
{
"data1":[
{
"id":21,
"description":"Bshd"
},
{
"id":22,
"description":"Gandhi "
},
{
"id":23,
"description":"aaaa"
},
{
"id":24,
"description":"bbbbb"
}
],
"data2":[
{
"id":12,
"description":"121"
},
{
"id":13,
"description":"qwe"
},
{
"id":16,
"description":"wD2"
},
{
"id":17,
"description":"we"
}
]
}
我知道我在这里遗漏了一些非常小而基本的东西,但对我来说,php中的JSON操作仍然很难。
有人可以给我一些线索或推动吗?
答案 0 :(得分:5)
您可以尝试使用以下代码以适当的格式生成数组。
$result = array();
$i=1;
foreach ($ids as $value) {
$tempArray = getCustomOptions($host, $dbUsername, $dbPassword, $dbName, $_SESSION['companyId'], $value);
$result['data'.$i] = $tempArray;
$i++;
}
答案 1 :(得分:0)
不要使用只创建普通数组元素的array_push()。使用$array_variable[$key] = ...
将值分配给特定的关联数组键。