首先,我有以下Json字符串
$jsonarr = '["somestring1", "somestring2","somestring3"]'
我想转换为PHP数组
$decodedjson = json_decode($jsonarr,TRUE);
然后迭代遍历数组的所有成员,例如:
for ($i=0;$i<3;$i++)
{
echo $decodedjson[$i];
}
首先,是否可以获得此数组的长度?
其次,此代码抛出错误。我不知道我做错了什么。
感谢您的时间。
答案 0 :(得分:1)
我看到的唯一错误是第一行缺少分号。你可以得到这样的长度:
count($decodedjson);
答案 1 :(得分:1)
如果json_decode()返回的数组有效,是的。你只需要打电话:
count($decodedjson);
但首先,尝试做一个$ decodingjson的var_dump。你会看到它是如何解码的。如果它等于null,那么json_decode()调用失败。您可以使用json_last_error()获取错误代码(错误代码列表:http://php.net/manual/en/function.json-last-error.php)
如果你想要更快,并在不知道长度的情况下遍历数组,你只需要使用foreach而不是for循环。
是的,就像Akshay说的那样,分享你得到的错误。祝你好运。
答案 2 :(得分:0)
是的,您可以通过count()
函数得到数组长度,如下所示:
$jsonarr = '["somestring1", "somestring2","somestring3"]' ;
$decodedjson = json_decode($jsonarr);
for ($i=0;$i < count($decodedjson);$i++)
{
echo $decodedjson[$i] . '<br>';
}
答案 3 :(得分:0)
与往常一样,您可以使用foreach
迭代对象/数组:
foreach ($decodedjson as $key => $value) {
echo $key . ' => ' .$value;
}