为什么我无法格式化我的JSON对象?
我想构建一个包含内部对象的json对象。为什么我无法格式化我的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操作仍然很难。
有人可以给我一个线索或推?
回答:
你可以尝试下面的代码来以适当的格式生成你的数组。该代码未经测试,请检查一次。
$result = array(); $i=1;
foreach ($ids as $value) {
$tempArray = getCustomOptions($host, $dbUsername, $dbPassword, $dbName, $_SESSION['companyId'], $value);
$result['data'.$i] = $tempArray;
$i++;
}
回答:
不要使用只创建普通数组元素的array_push()。使用$array_variable[$key] = ...
将值分配给特定的关联数组键。
以上是 为什么我无法格式化我的JSON对象? 的全部内容, 来源链接: utcz.com/qa/257530.html