从数组中删除重复值 - array_unique()无效

时间:2012-04-09 14:33:29

标签: php arrays image web-scraping

我有一个从网站(4chan)抓取图像的脚本。它必须通过从锚标签而不是图像获取网址来实现,否则它只会获得缩略图。问题是图像的url出现在两个锚标签中,因此每个图像出现两次。

我已尝试将它们放入数组然后应用array_unique()但它不起作用。

这是我的代码:

foreach($html->find('a') as $element) {
    if (strpos($element->href, "/src/")){
    $a = $element->href;    
    $ht = "<img src=\"" . $a. "\" />\n";
    $arr = array($ht);
    $arr = array_unique($arr);
    foreach($arr as &$b) {
            echo $b;
        }
    }
}

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您没有添加到数组,而是在每次迭代时重新定义$arr。试试这个:

$arr = array();
foreach($html->find('a') as $element) {
    if (strpos($element->href, "/src/")){
        $a = $element->href;    
        $ht = "<img src=\"" . $a. "\" />\n";
        $arr[] = $ht; 
    }
}
$arr = array_unique($arr);
foreach($arr as &$b) {
    echo $b;
}