我在foreach语句中使用foreach,但值重复

时间:2012-09-27 19:46:46

标签: php

这是我的代码

foreach($html->find('ul.listings li a') as $tvshow)
    $tvshows=preg_replace('/<span[^>]*>([\s\S]*?)<\/span[^>]*>/', '', $tvshow->innertext);
foreach($html->find('li a span.epnum') as $e)

    $query=mysql_query("insert into tvshow(count,author,tvshowname,imdblink,tvshowlink,description,year,image,imagetype,website,date,rating) 
              values('$count','$author','$tvshows','$imdblink','$tvshow->href','$tvshowdescription','$e->innertext','$tvshowname','$tvshowtype','$website','$date','$rating')");
    if(!$query)
    {
        die(mysql_error());
    }

这里$ tvshows,$ tvshow-&gt; href正在重复,我不希望它们重复。不要担心abt代码一切正常只使用两个foreach语句使重复.Pls使代码不重复。

1 个答案:

答案 0 :(得分:2)

Curly Brackets的力量......

foreach($html->find('ul.listings li a') as $tvshow) {
    $tvshows=preg_replace('/<span[^>]*>([\s\S]*?)<\/span[^>]*>/', '', $tvshow->innertext);

    foreach($html->find('li a span.epnum') as $e) {

        $query=mysql_query("insert into tvshow(count,author,tvshowname,imdblink,tvshowlink,description,year,image,imagetype,website,date,rating) 
                  values('$count','$author','$tvshows','$imdblink','$tvshow->href','$tvshowdescription','$e->innertext','$tvshowname','$tvshowtype','$website','$date','$rating')");
        if(!$query)
        {
            die(mysql_error());
        }
    }
}

我怀疑你的foreach没有嵌套,因为你没有像你应该的那样用括号括起来。

你写它们的方式,它会将它们解释为完全独立的循环。

循环1:

foreach($html->find('ul.listings li a') as $tvshow) 
    $tvshows=preg_replace('/<span[^>]*>([\s\S]*?)<\/span[^>]*>/', '', $tvshow->innertext);

循环2:

    foreach($html->find('li a span.epnum') as $e) 

        $query=mysql_query("insert into tvshow(count,author,tvshowname,imdblink,tvshowlink,description,year,image,imagetype,website,date,rating) 
                  values('$count','$author','$tvshows','$imdblink','$tvshow->href','$tvshowdescription','$e->innertext','$tvshowname','$tvshowtype','$website','$date','$rating')");
        if(!$query)
        {
            die(mysql_error());
        }

有意义吗?