[英]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.