2015-05-31 12 views
1

我想在php中使用json_decode從JSON轉換的數組的長度,但它由於某種原因不起作用。這是我現在的代碼。 JSON列表包含一個包含10,000個項目的數組。我很確定我錯過了一些東西。任何幫助將不勝感激。試圖從JSON列表中計數數組的長度

PHP

<?php 
$fl = file_get_contents($somepath); 
$text = json_decode($fl, true); 

$len = count($text["alphalist"]); 

echo $len; 
?> 

JSON

{ 
"alphalist": [{ 
     "a": "alphabet1." 
    }, { 
     "b": "alphabet2." 
    }, { 
     "c": "alphabet3." 
    }, { 
     "d": "alphabet4." 
    }, { 
     "e": "alphabet5." 
    } 
    .... 
    { 
     "zzzzz": "alphabet10000." 
    } 
] 
} 
+0

echo $ len;'返回到目前爲止? – D4V1D

+0

當我測試它時,它返回'0' –

+0

我剛剛測試過你的代碼,'json_decoding'你的'JSON'字符串返回數組中的5個元素。你確定你正在發佈完整的代碼嗎? – D4V1D

回答

1

答案竟是在這裏回答另一個類似的問題。

PHP not converting JSON using 'json_decode()'

所以一些測試與用戶D4V1D後,事實證明,這個問題是由於PHP函數json_decode不工作,因爲它在UTF-8格式不是。對此的解決方法是

$fl = file_get_contents($somepath); 
$text = json_decode(utf8_encode($fl), true); 
$len = count($text["alphalist"]); 

現在$len將給出正確的數組長度。如果我的解釋中有任何錯誤或改進,只需將其放入評論中,我會相應地更正它。