добавление данных в массив php внутри цикла - PullRequest
0 голосов
/ 11 января 2012

Я анализирую данные с веб-сайта через xml, который всегда изменяется, поэтому я не знаю, какие данные искать, только местоположение. Я получаю данные, вызывая определенный класс для необходимых данных. В этом классе, который извлекается, есть только определенные вещи, которые мне нужно извлечь. Так, например, я получаю класс .candy. Теперь .candy соответствует различным частям на сайте, поэтому давайте скажем, что леденец получает "Cookies Chocolate gummy bear". Я хочу только "шоколад".

Моя идея заключалась в том, чтобы поместить все в массив, а затем получить к нему доступ. Предположим, что массив называется test, тогда я бы хотел получить доступ к "chocolate" с помощью $ test [1];

Это не работает для меня (говорит, что массив выходит за границы, когда я ставлю число больше 0), и мне было интересно, если кто-нибудь знает, где моя ошибка в моем коде? Обратите внимание, что вышесказанное было просто примером для лучшего понимания, а не фактических данных, которые мне нужны.

Спасибо

function getData($html)                             
{                               
    @$doc=new DOMDocument();
    @$doc->loadHTML($html);
    $xml=simplexml_import_dom($doc); // just to make xpath more simple
    //$images=$xml->xpath('//[]');
    $info=$xml->xpath('//*[@class="date"]'); 
    $arr= array();

    foreach ($info as $img) {                                 
        $arr= array($img);          
    }
    return $arr[3];
}

Ответы [ 2 ]

2 голосов
/ 11 января 2012

Вы заменяете $arr в каждом цикле.$arr[] = $img; должно работать.

Пример:

function getData($html)
{       
    @$doc = new DOMDocument();
    @$doc->loadHTML($html);
    $xml = simplexml_import_dom($doc);
    $info = $xml->xpath('//*[@class="date"]'); 
    $arr = array();

    foreach ($info as $img)
    {
        $arr[] = $img;
    }

    return $arr[3];
}
1 голос
/ 11 января 2012
foreach ($info as $img) {
    $arr[] = $img;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...