PHP foreach有两个'as'?

时间:2013-08-07 14:29:46

标签: php loops foreach

您好,我正在尝试将两个foreach循环组合,但我遇到了问题。

问题是<a href='$link'>与所有结果相同,但它们必须不同。

以下是我正在使用的代码:

<?php
$feed = file_get_contents('http://grabo.bg/rss/?city=&affid=16090');

$rss = simplexml_load_string($feed);

$doc = new DOMDocument();
@$doc->loadHTML($feed);

$tags = $doc->getElementsByTagName('link');

foreach ($tags as $tag) {
    foreach($rss as $r){
        $title = $r->title;
        $content = $r->content;
        $link = $tag->getAttribute('href');
        echo "<a href='$link'>$title</a> <br> $content";
    }
}

?>

我的错误在哪里?为什么它不工作以及我如何使其正常工作? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

这两个循环都经历了不同的资源,所以你只是简单地交叉加入其中的所有记录。

这应该可以获得您需要的数据:

<?php
$feed = file_get_contents('http://grabo.bg/rss/?city=&affid=16090');
$rss = simplexml_load_string($feed);

foreach ($rss as $key => $entry) {
    if ($key == "entry")
    {
        $title = (string) $entry->title;
        $content = (string) $entry->content;
        $link = (string) $entry->link["href"];
        echo "<a href='$link'>$title</a><br />" . $content;
    }
}