2017-01-30 133 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是的,也添加了這個選項 –