for循环中的多个数组需要用json输出

时间:2011-12-14 07:00:20

标签: php arrays json for-loop foreach

我有一个for循环,在json_decode()中输出两个数组;我想知道如何才能获得第一个数组的数据,或者只获得第二个数组的数据。

for($i = 0; $i < $node_count; $i++)
{

    $results[$i] = curl_multi_getcontent  ( $curl_arr[$i]  );
    $results[$i] = json_decode($results[$i],true);

}

我得到$ results [0]和$ results [1]。

我只能输出$ results [0]

echo "<pre>";
print_r($results[0]);
echo "</pre>";

这给了我没有错误,我只能输出第一个数组。但是,当我尝试这个时

foreach($results[0] as $result){
    $result['data']['id'];  
}

它给我一个未定义索引的错误。但如果我尝试没有[0]

foreach($results as $result){
    $result['data']['id'];  
}

这会在两个数组中输出id,但我只是想获得一个数组。为什么会这样?

谢谢!

编辑:

   array(
      array(
         'data' => array('id' => ...),
          ....
      ),
      ...
    )



    array(
      array(
         'data' => array('id' => ...),
          ....
      ),
      ...
    )

2 个答案:

答案 0 :(得分:0)

$results[0]是数组$results的第一个元素,它们不是一回事。

修改

$results就像是

array(
  array(
     'data' => array('id' => ...),
      ....
  ),
  ...
)

$results[0]就像

一样
  array(
     'data' => array('id' => ...),
      ....
  )

答案 1 :(得分:0)

你可以尝试

echo $results[0]['data']['id'];
echo $results[1]['data']['id'];