2013-10-25 34 views
1

感謝您的時間:JSON數組PHP,循環利用指標

所有我有以下的JSON字符串首先

$jsonarr = '["somestring1", "somestring2","somestring3"]' 

,我要轉換爲一個PHP數組

$decodedjson = json_decode($jsonarr,TRUE); 

然後重複遍歷數組的所有成員,例如:

for ($i=0;$i<3;$i++) 
{ 
    echo $decodedjson[$i]; 
} 

首先,是否有可能獲得這個數組的長度?

其次,這段代碼會拋出一個錯誤。我不確定我做錯了什麼。

謝謝你的時間。

+0

你能分享錯誤信息 – Akshay

+0

你可以用'計數($ decodedjson)'的長度,就像任何其他的陣列。 – Barmar

+0

'var_dump($ decodedjson)'查看它包含的內容。 –

回答

1

如果)由json_decode返回(數組是有效的,是的。你只需要調用:

count($decodedjson); 

但首先,試着做$ decodedjson的的var_dump。你會看到它是如何解碼的。如果它等於null,那麼json_decode()調用失敗。您可以使用json_last_error()獲取錯誤代碼(錯誤代碼列表:http://php.net/manual/en/function.json-last-error.php

如果您想要加快速度並在不知道長度的情況下遍歷數組,您只需使用foreach而不是for循環。

是的,就像Akshay說的,分享你遇到的錯誤。祝你好運。

1

我看到的唯一錯誤是第一行缺少分號。你可以得到的長度是這樣的:

count($decodedjson); 
0

是的,你可以通過count()函數獲取數組長度象下面這樣:

$jsonarr = '["somestring1", "somestring2","somestring3"]' ; 
$decodedjson = json_decode($jsonarr); 

for ($i=0;$i < count($decodedjson);$i++) 
{ 
    echo $decodedjson[$i] . '<br>'; 
} 
0

與往常一樣,你可以使用foreach通過對象/數組遍歷:

foreach ($decodedjson as $key => $value) { 
    echo $key . ' => ' .$value; 
}