2011-11-10 85 views
1

我有一些來自查詢的數字,我必須使用json_encode函數來表示。 一切工作,但輸出看起來像這樣將數組元素從字符串轉換爲數字

{ "label": "man", "data":[["0","1.13"], ["1","1.38"], ["2","1.87"], ["3","1.12"], ["4","1.28"]]} 

,所以我覺得現在的問題是,所有的號碼都存儲爲字符串。 有沒有一個函數可以轉換所有元素的數量?

+2

''所以我瘦k問題是所有的數字都以字符串形式存儲。「什麼問題? –

回答

4

您可能要JSON_NUMERIC_CHECK添加到您的json_encode功能:

json_encode($array, JSON_NUMERIC_CHECK); 
+0

只是FYI,這是PHP 5.3.3中添加的。 –

+0

@火箭我知道,只是想讓他知道可用的選項。 – SERPRO

+0

非常好...這是一個非常棒的解決方案! – Nicolaesse

1

你可以得到一個變量與此整數或浮點數值:

echo (integer)$variable; 
echo (float)$variable; 
+0

,那麼你可以標記答案是正確的,如果我使用echo而不是使用json_encode,那麼這很好......感謝大家的答案! – Nicolaesse

-1
<?php 

$json = '{ "label": "man", "data":[["0","1.13"], ["1","1.38"], ["2","1.87"], ["3","1.12"], ["4","1.28"]]}'; 

$structure = json_decode($json, true); 
$newData = $structure['data']; 

for ($x=0;$x<count($newData);$x++): 
    for ($i=0;$i<count($newData[$i]);$i++): 
     $newData[$x][$i] = (float)$newData[$x][$i]; 
    endfor; 
endfor; 

$structure['data'] = $newData; 
print json_encode($structure); 

新結果:

{"label":"man","data":[[0,1.13],[1,1.38],[2,1.87],[3,1.12],[4,1.28]]}