为什么我无法格式化我的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

回到顶部