[英]php encode nested json in wrong format
您将需要清空$ option数组,如下所示:
$option = []; //or $option = array(); in PHP < 5.4
为了不继续存储来自先前迭代的数据,这是必需的。
所以:
while($row=$statement->fetch()){
$value=str_replace('"','',$row['item_option_value']);
$option = [];
$option[$row['item_option_name']]=explode(',',$value);
$all[$row['oid']]=$option;
}
echo json_encode($all);
问题是因为这里有这条线,
$option[$row['item_option_name']]=explode(',',$value);
在while()
循环的每次迭代中,您都将先前计算的 $options
数组附加到$all
。 而是创建一个临时数组来保存中间结果,并在每次迭代中将其附加到$all
,如下所示:
while($row=$statement->fetch()){
$opArray = array();
$value=str_replace('"','',$row['item_option_value']);
$opArray[$row['item_option_name']]=explode(',',$value);
$all[$row['oid']]=$opArray;
}
echo json_encode($all);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.