JSON数组到PHP,循环索引

时间:2013-10-25 20:58:20

标签: php arrays json

谢谢你的时间:

首先,我有以下Json字符串

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

我想转换为PHP数组

$decodedjson = json_decode($jsonarr,TRUE);

然后迭代遍历数组的所有成员,例如:

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

首先,是否可以获得此数组的长度?

其次,此代码抛出错误。我不知道我做错了什么。

感谢您的时间。

4 个答案:

答案 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;
}