2017-01-30 118 views
-1

我越来越{"1":["77","77"],"2":["33","55","66"]}作为JSONPHP JSON动态存储在数据库

我在PHP正在解码为$organize = json_decode($json);

现在存储值的数据库,我做这样的事情

foreach($organize->{1} as $pos => $div){ 

$pos1 = 1; 
    $sql = "INSERT INTO process VALUES (DEFAULT,'".mysqli_real_escape_string($conn,$pos1)."','".mysqli_real_escape_string($conn,$div)."')"; 
    if ($conn->query($sql) === TRUE) { 

    } 

} 

foreach($organize->{2} as $pos => $div){ 

    $pos1 = 2; 
    $sql = "INSERT INTO process VALUES (DEFAULT,'".mysqli_real_escape_string($conn,$pos1)."','".mysqli_real_escape_string($conn,$div)."')"; 
    if ($conn->query($sql) === TRUE) { 

    } 
} 

在哪里$organize->(1) and $organize->(2)是从上面的json输出专门输入的

有没有办法检索钥匙“1”&“2”或任何数字,所以我把forloop outsite我的主forloop,它会自动存储每个数据。

喜欢的东西

foreach(ACCESS KEYS HERE) 
foreach($organize->{$KEY NUMBER HERE} as $pos => $div){ 

    $pos1 = $KEY NUMBER HERE; 
    $sql = "INSERT INTO process VALUES (DEFAULT,'".mysqli_real_escape_string($conn,$pos1)."','".mysqli_real_escape_string($conn,$div)."')"; 
    if ($conn->query($sql) === TRUE) { 

    } 
} 
} 

有没有办法让它动这样。

谢谢。

回答

1

解码字符串数组,迭代与foreach

$organize = json_decode($json, true); // will give you array 
foreach ($organize as $pos => $level1) { 
    foreach ($level1 as $value) { 
     // insert value here 
     // $pos is key, $value is value 

    } 
} 

由于正确地注意到,在评论,甚至解码字符串对象会给你同样的结果:

$organize = json_decode($json); // no second argument 
foreach ($organize as $pos => $level1) { 
    foreach ($level1 as $value) { 
     // insert value here 
     // $pos is key, $value is value 

    } 
} 
+2

是不是可以循环一个JSON解码对象在PHP呢? – Peon

+0

立即工作谢谢! – Phoenix

+0

@DainisAbols是的,也添加了这个选项 –