Php foreach循环没有覆盖变量

时间:2012-08-18 12:08:51

标签: php foreach

我很难弄清楚如何管理我的循环以在过程中不覆盖变量,我的示例脚本看起来如下:

$targets = array(
    array(
        'site_id' => 1,
        'url' => array('http://example.com','http://test.com'),
        'title' => "Title_1",
        'int_link' => "/internal_link/",
        'icon' => '/icon_2.gif',
        'teaser_index' => 5),
  array(
        'site_id' => 2,
        'url' => array('http://example2.com','http://test2.com'),
        'title' => "Title_2",
        'int_link' => "/internal_link/",
        'icon' => '/icon_2.gif',
        'teaser_index' => 5)
)

foreach($targets as $target){
        $images = array();
    $links  = array();
    $name = array();
        $loop=-1; 
        foreach($target['url'] as $url){
           $loop++;
           //parsing $url;
           //the insider loop has 2 iterations
             if ($loop=1){

                 $content .="<div>".$target['title'].$url"</div>";

            } 
             else{
                 $content .="<div>".$target['title'].$url"</div>";
            }

}
//write $content html to database, without to override the first $content 
}

1 个答案:

答案 0 :(得分:1)

你的问题不明确,但我想我明白可能存在的问题

脚本中有很多错误需要修复,也许你的脚本会以你想要的方式运行。

一个。 $content未定义..您需要定义它

B中。 if ($loop=1){应为if ($loop == 1){

℃。 $content .="<div>".$target['title'].$url"</div>";遗失.,应该是$content .= "<div>" . $target['title'] . $url . "</div>";

d。如果条件没有意义,因为您输出相同的信息

形成我可以看到你要输出的标题&amp;您也可以使用这个简单的脚本(只是猜测)

$targets = array(
    array(
        'site_id' => 1,
        'url' => array('http://example.com','http://test.com'),
        'title' => "Title_1",
        'int_link' => "/internal_link/",
        'icon' => '/icon_2.gif',
        'teaser_index' => 5),
  array(
        'site_id' => 2,
        'url' => array('http://example2.com','http://test2.com'),
        'title' => "Title_2",
        'int_link' => "/internal_link/",
        'icon' => '/icon_2.gif',
        'teaser_index' => 5)
);

foreach ( $targets as $target ) {
    $content = "";
    $output = "<div> %s : %s </div>";
    $content .= sprintf($output, $target['title'], implode(" , ",$target['url'])); 
    echo $content;
    // write $content html to database, without to override the first $content
}

输出

Title_1 : http://example.com , http://test.com
Title_2 : http://example2.com , http://test2.com