doufen3563 2011-12-14 20:51
浏览 28
已采纳

如何遍历stdObject的数组?

Like in Java when you iterate a list, it's real easy, it's like: while(BLAH.hasNext()) { }, so how do I do that in PHP when I have an array within an stdObject that I want to iterate through each and every item?

I keep getting Catchable fatal error: Object of class stdClass could not be converted to string in /Applications/XAMPP/xamppfiles/htdocs/index.php on line 29

<?php   
    $apiUrl = 'https://api.quizlet.com/2.0/groups/44825?client_id=***BLOCKED FROM PUBLIC***&whitespace=1';

    $curl = curl_init($apiUrl);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $json = curl_exec($curl);
    if ($json) {
        $data = json_decode($json);

        echo "<h1>Sets from \"{$data->name}\"</h1>";

        foreach ($data->sets as $key => $val) {
         echo "$key: $val
";
        }
        echo "</ul>";
        var_dump($data);
    }
    ?>
  • 写回答

3条回答 默认 最新

  • dpp10181 2011-12-14 20:56
    关注

    You can/should use foreach to iterate over every element of an array.

    $foo = new stdClass;
    $foo->arr = array('1','7','heaven','eleven');
    
    foreach ($foo->arr as $val)
    {
        if (is_object($val)) var_dump($val);
        else echo $val;
    }
    

    Note the line I added to var_dump sub-objects. The error you were initially getting was that the elements of your sets array were also objects, not strings as expected. If you only need to access certain elements of the set objects, you can access them using $val->property.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 nrf52810-c三个a 程序
  • ¥15 lego-loam跑出来的roll误差很大
  • ¥50 求一个半透明没有锯齿的圆角窗体的实现例子
  • ¥15 STM32cubeMX里的FreeRTOS无法释放内存
  • ¥15 CATIA有些零件打开直接单机确定终止
  • ¥15 请问有会的吗,用MATLAB做
  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对