PHP JSON没有显示所有相关的数值

问题描述:

你好,我有印刷JSONPHP JSON没有显示所有相关的数值

<?php 

include('databaseconnect.php'); 

$sql = "SELECT product_id,product_name FROM products WHERE product_id='1'"; 
$result = $conn->query($sql); 

$sql2 = "SELECT GROUP_CONCAT(ss.Name,':',sv.value_s) as Specifications FROM specifications ss, specification_value sv WHERE sv.specification_ID = ss.specification_ID AND sv.product_id = '1'"; 
$fetch = $conn->query($sql2); 

$sql3 = "select GROUP_CONCAT(v.name,':',vv.value) as variants from variant v,variant_value vv where v.variant_id=vv.variant_id and product_id='1'"; 
$fetch1 = $conn->query($sql3); 


$json['products'] = array(); 

while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ 

    $json['products'] = $row; 

    } 

$json['products']['specification'] = array(); 

while ($row = mysqli_fetch_assoc($fetch)){ 

    $specification_array = explode(',', $row["Specifications"]); 
    $speci_array = array(); 
    foreach($specification_array as $spec){ 
     $spec = explode(':',$spec); 
     $speci_array[$spec[0]] = $spec[1]; 
    } 
    $json['products']['specification'] = $speci_array; 

    //array_push($json['products'],$row_temp); 
    } 

$json['products']['specification']['variants'] = array(); 

while ($row = mysqli_fetch_assoc($fetch1)){ 

    $variants_array = explode(',', $row["variants"]); 
    $vari_array = array(); 
    foreach($variants_array as $var){ 
     $var = explode(':',$var); 
     $vari_array[$var[0]] = $var[1]; 
    } 
    $json['products']['specification']['variants'] = $vari_array; 

    //array_push($json['products'],$row_temp); 
    } 


echo Json_encode($json); 

?> 

和该输出这个PHP代码是

{ 
    "products": { 
     "product_id": "1", 
     "product_name": "Face Wash", 
     "specification": { 
      "brand": "Python", 
      "product_Description": "very good", 
      "variants": { 
       "size": "long" 
      } 
     } 
    } 
} 

但在此我有变异,即 一个更大的价值“大小”:“小”,并没有显示出来。 遗憾的英语不好,请找我任何澄清回答

我期望的输出之前

{ 
    "products": { 
     "product_id": "1", 
     "product_name": "Face Wash", 
     "specification": { 
      "brand": "Python", 
      "product_Description": "very good", 
      "variants": { 
       "size": "small" 
       "size": "long" 
      } 
     } 
    } 
} 
+0

你可以做 '$ vari_array [$ VAR [0] [] = $ VAR [1]。'现在大小是多维数组。 – WisdmLabs

+0

感谢它解决了我的问题:) –

不能添加相同的键两次size。之前的密钥被稍后覆盖。

由于您正在重复键size,因此值将被覆盖。传递属于数组中相同键的所有必需值。

是你不能使用相同的密钥的名字.. 你可以像

{ 
    "products": { 
     "product_id": "1", 
     "product_name": "Face Wash", 
     "specification": { 
      "brand": "Python", 
      "product_Description": "very good", 
      "variants": [{"size": "small"},{"size": "long"}] 
     } 
    } 
}