通过PHP中的JSONArray进行操作

时间:2011-03-26 18:15:55

标签: php json

我收到了这个错误:

  

警告:第49行[page] .php中为foreach()提供的参数无效

这是$ json变量的回显: [{"d":"2011-03-26","q":1,"t":1060},{"d":"2011-03-26","q":2,"t":1060},{"d":"2011-03-26","q":1,"t":1060}]

我正试图像这样迭代:

foreach($json as $obj) { // <--THIS IS LINE 49
    // Stuff
}

4 个答案:

答案 0 :(得分:6)

只是一个猜测:

您的$json变量是一个字符串。您需要使用json_decode将其转换为对象以遍历对象:

$json_obj = json_decode( $json );
foreach( $json_obj as $obj )
{
  //stuff
}

答案 1 :(得分:1)

你需要decode json才能迭代它。

JSON-String本身对foreach毫无意义。

答案 2 :(得分:1)

首先尝试使用json_decode()。看起来你的变量是json编码的,这意味着它实际上只是一个字符串,因此不能被foreach枚举。

foreach(json_decode($json) as $obj) {
    // stuff
}

答案 3 :(得分:0)

foreach(json_decode($json) as $obj) { // stuff }

它返回一个像这样的警告:为foreach()提供的参数无效,虽然有效。

我的代码在这里:

function search_terms ( $json , $term ) 
        {
            if ( $json != null ){
                foreach ( $json as $item ) {// Recursive function
                    $this->search_terms ( $item, $term );
                }
            }else{

            }
        }