在循环中向php数组添加数据

时间:2012-01-11 07:22:46

标签: php html parsing

我正在通过xml从网站解析数据,这些数据总是在变化,所以我不知道要搜索什么数据,只知道位置。我通过调用所需数据的特定类来获取数据。在这个被检索的类中,只有我需要检索的某些东西。例如,我检索类.candy。现在.candy对应于网站上的不同部分,所以让我们说糖果检索“饼干巧克力软糖熊”。我只想要“巧克力”。

我的想法是将所有内容放入一个数组中,然后访问它。假设数组被称为test,那么我想通过$ test [1];

访问“chocolate”

这对我不起作用(每当我输入一个大于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 个答案:

答案 0 :(得分:2)

您正在每个循环中替换$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 :(得分:1)

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