PHP Döngü bazı şeyleri döngü olarak bitmiş bir kez

5 Cevap php

Ben bu PHP döngü var,

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 Ben gri kutular x miktarını yazdırmak için döngü yapmak mümkün olacağını umuyordum bittikten sonra bu mümkündür ve ilk döngü 1 öğeyi döndürür if nasıl, temelde i, 11 kutu yazdırmak için ikinci bir döngü gerekir eğer öyleyse birincisi ben 3 kutu dönmek için ikinci bir döngü gerekir 9 ürün verir.

Mantıklı? Herkes bana yardımcı olabilir misiniz?

5 Cevap

Eğer 12 kutu toplam istiyorsanız Yani, bir sayaç ve eksiltme ayarlayın:

$boxes = 12;
foreach($returnedContent as $k =>$v){
   // all your previous stuff
   $boxes--;
}

for($i = 0; $i < $boxes; $i++){
   // print your box here
}

Uygulamaya bağlı olarak da $ returnContent öğe sayısı <= $ kutuları olup olmadığını kontrol etmek isteyebilirsiniz. Dolar kutuları büyükse bir hata almazsınız ama fazla $ kutuları görüntüleri ile satır alacak.

Sadece eklemek sonra, bir sayaç tutmak ve her döngü tekrarında için artırmak

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

: Belki ($ returnedContent sayısal endeksli olduğunu varsayarak) böyle bir şey yapabileceğini

//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
    }
}

İlk döngü sonra, bunu yapabilirsiniz:

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

Hmmm Im emin Im seni anlamak değil

$c = count($returnedContent);

değişken size öğelerin miktarda alacak

sonra:

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

İlk döngü sonra. Ayrıca ilk döngü içinde bir sayaç değişkeni kullanabilirsiniz.