2017-02-28 26 views
0

我想在mysql數據庫中存儲幾個表單域。這些特定字段可以有多個選定的值。所以我喜歡將這個值存儲爲json_encode格式的值。爲什麼我的php函數沒有返回json格式的值?

現在,當我爲每個表單字段編碼時,我可以將這些值以json格式存儲在mysql數據庫中。因爲重複我想這功能,但它返回一個數組

function radioValue($radiodata) { 
    $tmpArray = array(); 
    $tmpArrayLen = count($radiodata); 
    for ($i = 0; $i < $tmpArrayLen; $i++) { 
     $tmpArray[$i] = $radiodata[$i]; 
    } 
    $tmpValue = json_encode($tmpArray); 
    return $tmpValue; 
} 

所以不{「1」:「值1」},但[「值1」]

我有什麼??忽視

順便說一句,這就是爲什麼每場工作的一部分

$tmpArray = array(); 
     $len = count($posted_data["field1"]); 
     for ($i = 0; $i < $len; $i++) { 
      $tmpArray[$i] = $posted_data["field1"][$i]; 
     } 
     $storeValue = json_encode($tmpArray); 
+0

另外,你把$ radiodata放在另一個數組中,然後enocde它 - 只是直接enc ode $ radiodata – Mihai

+2

'[「value1」]'是[有效的JSON](https://3v4l.org/XEbg1),它是放在$ tmpValue中的數據的JSON表示。你爲什麼期望它是'{「1」:「value1」}?你把值放在'$ tmpValue'開始於索引'0','json_encode()'的輸出是正確的。 – axiac

+1

這是數字數組和關聯之間的區別。 – nerdlyist

回答

1

你必須對它進行解碼在編碼後:

$futureArray = radioValue($radiodata); 

$array = json_decode($futureArray); 

此外,添加一個true作爲第二個參數,這將是關聯數組

$array = json_decode($futureArray, true); 
+1

他希望json返回,所以我不知道你在回答什麼問題。 – Mihai

+1

'json_decode('['value1']')'無論如何都返回數組,因爲在JSON中編碼的值是一個數組,而不是一個對象。備註方括號。 – axiac

相關問題