将嵌套的stdClass插入数据库

时间:2016-12-23 11:29:12

标签: php

我一直致力于从客户端页面自动获取信息的项目。它基本上是一个函数,它调用一堆其他函数并将信息排列在stdClass对象中。我以为我很聪明,并且可以搜索"可搜索"但我遇到了一些小问题。

以下是输出示例:

where

如您所见,第一个对象的索引(或者是键)是stdClass Object ( [ud] => stdClass Object ( [name] => stdClass Object ( [svenska] => Uddev [engelska] => uddev ) [biografer] => stdClass Object ( [0] => stdClass Object ( [namn] => Drottning. Uddev [id] => 196 [salonger] => stdClass Object ( [0] => stdClass Object ( [salong] => Vag 1 [platser] => 100 platser [ljud] => SOU ) [1] => stdClass Object ( [salong] => Vag 2 [platser] => 100 platser [ljud] => SOU ) [2] => stdClass Object ( [salong] => Vag 3 [platser] => 60 platser [ljud] => SOU ) [3] => stdClass Object ( [salong] => Vag 4 [platser] => 50 platser [ljud] => SOU ) [4] => stdClass Object ( [salong] => Vag 5 [platser] => 50 platser [ljud] => DOLBY ) [5] => stdClass Object ( [salong] => Vag 6 [platser] => 34 platser [ljud] => ) ) ) ) ) [ma] => stdClass Object ( ...... And the following object

我以为我可以这样做:

ud

这将生成$test = $crawler->fetchAllArray(); foreach ($test as $key => $value) { if($key == 'ud'){ foreach ($value->{ud} as $child => $ud) { # line 295 echo "id: $key" . ", name: $ud->name->svenska"; } } } ,但我收到以下错误:

  

注意:使用未定义的常量ud - 假设' ud'在test.php上   第295行

     

注意:未定义的属性:第295行的test.php中的stdClass :: $ ud

     

警告:在test.php中为foreach()提供的参数无效   295

如何正确回显特定对象的信息?

1 个答案:

答案 0 :(得分:1)

你为什么这么做?

$value->{ud}

您应该以下列方式访问嵌套对象:

$value

或甚至

$test->ud

直接

第二个foreach是什么?不是特别清楚你想要完成什么,但你可以这样做:

foreach ($test as $key => $value) {
    if($key == 'ud'){
          echo "id: $key" . ", name: ".  $value->name->svenska;
        }
    }
}