【问题标题】:multiple array in a for loop need to output with jsonfor循环中的多个数组需要用json输出
【发布时间】:2011-12-14 07:00:19
【问题描述】:

我有一个 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' => ...),
          ....
      ),
      ...
    )

【问题讨论】:

    标签: php arrays json for-loop foreach


    【解决方案1】:

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

    编辑:

    $results 类似于

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

    $results[0] 有点像

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

    【讨论】:

    • 我怎么能 print_r($results[0])?我会在 foreach 中使用什么?
    • 感谢您的回复,但是如果我有输出的 results[0] 和 results[1] 并且我只想从第一个数组中获取值怎么办?我编辑了显示两个数组的帖子
    • @andrewliu 所以你可以使用$results[0]['data']['id']
    • 如果数据中有一个数组怎么办?我正在尝试做一个 foreach 循环来获取所有值。但似乎 foreach 不适用于 [0]?感谢您的帮助!
    • @andrewliu foreach 并不是那么难的事情。你看手册了吗php.net/manual/en/control-structures.foreach.php
    【解决方案2】:

    你可以试试

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

    【讨论】:

    • 是的,我可以这样做,但是数据中有多个 id,所以这就是我尝试执行 foreach 循环的原因
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    相关资源
    最近更新 更多