如何在 foreach 循环中创建数组?

How to create array in foreach loop?

我正在使用 PHP HTML DOM 解析器从另一个站点获取数据。首先,我在这个网站上获得我的交易的 URL,然后我对每笔交易发送另一个请求 url 以获取评论。我想制作一系列评论,以便稍后对它们进行排序。为什么我不能创建数组?

看起来像这样

include_once('simple_html_dom.php');
$result = array();
$html = file_get_html('http://csgolounge.com/profile?id='.$steamid);

foreach($html->find('div.tradepoll') as $trade) 
    {
    $tradeid = $trade->find('.tradeheader')[0]->find('a')[0]->href;
    $html = file_get_html('http://csgolounge.com/'.$tradeid);       

        foreach($html->find('div.message') as $message)
        {

        if($message->find('p',0)){}

        else
           {                    
            $left = $message->find('.msgleft')[0];
            $right = $message->find('.msgright')[0];

            //information about comments
            $time = trim(strip_tags_content($left->innertext));
            $text = $left->find('.msgtxt')[0];

            $result[$time]['time'] = $time;
            $result[$time]['text'] = $text;                     
           }

        }

    }

    echo json_encode($result);

如果我回显 $time 或 $text 我总是能成功获取数据。

我找到问题所在了。

每次调用 file_get_html 或 str_get_html 时,简单 HTML DOM 解析器不会清理 DOM 中的内存,因此需要每次完成当前 DOM.

时都会显式完成

所以我添加了 $html->clear();在循环结束时。

学分:electrictoolbox.com