-1

プロセス中に変数をオーバーライドしないようにループを管理する方法を理解するのは難しいです。私のサンプルスクリプトは次のようになります。

$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 
}
4

1 に答える 1

1

あなたの質問は明確ではありませんが、私は起こりそうな問題が何であるかを理解していると思います

スクリプトには非常に多くのエラーがあり、修正する必要があります。おそらく、スクリプトは希望どおりに実行されます。

A.$content定義されていませんでした..定義する必要があります

B.if ($loop=1){する必要がありますif ($loop == 1){

C.$content .="<div>".$target['title'].$url"</div>";が欠落.しているので、次のようになります。$content .= "<div>" . $target['title'] . $url . "</div>";

D.同じ情報を出力しているため、条件が意味をなさない場合

タイトルとURLを出力したいので、この簡単なスクリプトを使用することもできます(推測するだけです)。

$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
于 2012-08-18T14:11:04.177 に答える