php
  • foreach
  • loops
  • 2010-01-21 47 views 1 likes 
    1

    我有这个PHP循环,PHP循环做一些一旦环路完成

    foreach($returnedContent as $k => $v) { 
        $imageName = str_replace($replaceData, "", $v['contentImageName']); 
        echo "<a class='contentLink' href='".base_url()."welcome/getFullContent/$v[contentId]'>"; 
        echo "<img src='/media/uploads/".strtolower($v['categoryTitle'])."/".$imageName."_thumb.png' alt='$v[contentTitle]' />"; 
        echo "</a>"; 
    } 
    

    一旦LOPP完成我希望这将是可能做到环打印的灰色框X量这是可能的如果是的话,基本上如果第一个循环返回1个项目,我需要第二个循环来打印出11个框,如果第一个循环返回9个项目,我需要第二个循环返回3个框。

    有意义吗?谁能帮我?

    回答

    0

    只要保持一个计数器,并增加它的每次循环迭代,然后添加

    for (;$counter < 11; ++$counter) { 
        do_loop_stuff(); 
    } 
    
    +0

    我会使用'count($ returnedContent)'而不是变量。另外,是否真的有可能用';'开始for循环?我从来没有见过这个。 – Robin 2010-01-21 13:19:52

    +1

    @Robin,我敢打赌你还没见过'for(;;)',这也是相当合法的:) – vava 2010-01-21 13:22:09

    0

    也许你可以做这样的事情(假设$ returnedContent是数字索引):

    //count to 12 so we get 12 items 
    for ($i=0; $i<12; $i++) { 
        //check if there is an entry to print 
        if (isset($returnedContent[$i])) { 
         $v = $returnedContent[$i]; 
         $imageName = str_replace($replaceData, "", $v['contentImageName']); 
         echo "<a class='contentLink' href='".base_url()."welcome/getFullContent/$v[contentId]'>"; 
         echo "<img src='/media/uploads/".strtolower($v['categoryTitle'])."/".$imageName."_thumb.png' alt='$v[contentTitle]' />"; 
         echo "</a>"; 
        } else { 
         //draw grey box 
        } 
    } 
    
    0

    后,第一个循环,你可以这样做:

    for($i = 0; $i < 12 - count($returnedContent); $i++) 
    { 
    // print the grey boxes. 
    } 
    
    2

    所以,如果你想一共有1 2盒,设置一个计数器和递减:

    $boxes = 12; 
    foreach($returnedContent as $k =>$v){ 
        // all your previous stuff 
        $boxes--; 
    } 
    
    for($i = 0; $i < $boxes; $i++){ 
        // print your box here 
    } 
    

    根据您的应用程序,你可能还需要检查在$ returnContent项目的数量为< = $箱。如果它大于$ box,您将不会收到错误消息,但您将获得包含多个$ box图像的行。

    0

    嗯林不知道林了解你,但

    $c = count($returnedContent); 
    

    将让你的项目的数量,在可变

    则:

    $c = (11-$c); 
    if($c > 0) { 
        for($i=0;$i<$c;$i++) { 
         // print gray box 
        } 
    } 
    

    第一循环之后。你也可以在第一个循环内使用一个计数器变量。

    0

    我的确把这个问题解释为“当循环完成迭代时做些事情”。 在这种情况下,for/foreach循环不是这里的最佳选择。

    <?php 
    $i = 0; 
    do { 
        echo $i; 
    } while ($i > 0); 
    //then do whatever else you need to. 
    ?> 
    
    相关问题