Sütunlar için modülü kullanarak Cleaner yolu

3 Cevap php

Ben şu anda iki sütuna ayrılmıştır kişilerin bir listesini (

    ) var. Ama bunun için kod bittikten sonra ben aynı şeyi yapmak için daha etkili ve temiz bir yolu olup olmadığını merak keept.

    echo "<table class='area_list'><tr>";
    // Loop users within areas, divided up in 2 columns
    $count = count($areaArray);
    for($i=0 ; $i<$count ; $i++) {
      $uid = $areaArray[$i];
      // get the modulus value + ceil for uneven numbers
      $rowCalc = ($i+1) % ceil($count/2);
    
      if ($rowCalc == 1) echo "<td><ul>";
    
      // OUTPUT the actual list item
      echo "<li>{$users[$uid]->profile_lastname}</li>";
    
      if ($rowCalc == 0 && $i!=0) echo "</ul></td>";
    }
    echo "</tr></table>";
    

3 Cevap

Bu LLIA @ ne anlama olup olmadığını bilmiyorum, ama ne var böyle döngüler için:

//declare how many columns are needed
$cols=2;

//iterate over each row of entries (down the column)
for ($i=0;i<$count;i+=cols){ 

     echo "<td><ul>";

     //entry loop (across the row)
     for($j=0;j<$cols;j++){ 

           //whose line is it anyway?
           $uid = $areaArray[$i+$j];

           echo "<li>{$users[$uid]->profile_lastname}</li>";
     }
     //end entry loop

     echo "</ul></td>";
}
//end row loop

bu şekilde, sizin gibi ancak birçok sütunları ayarlayabilirsiniz.

Ben çok gerekli caffine almak için kaynatmak için su ısıtıcısı bekliyorum gibi bir şey kaçırmış beni affet!

Bu ne istediğinizi yapmanız gerekir. Ben hemen hemen sadece, diğer iki cevabı herkes için çok +1 birleştirdi.

$cols=3;
$user_count = count($users);

echo "<table class='area_list'><tr>";

// Column loop
for($i=0;$i<$cols;$i++){
    echo "<td><ul>";

    // user loop
    for($j=$i;$j<$user_count;$j+=$cols){
        echo "<li>{$users[$j]->profile_lastname}</li>";
    }
    echo "</ul></td>";
}
echo "</tr></table>";

Bir kez her sütun için sadece iki kez döngü, yapamam. Ikinci birinci sütunda ve 1 at 0 başlayın. Iki ile artırmak.

Edit: daha da güzel yapmak için, bir döngü içinde sütunlar kendilerini koymak:

$cols = 3;

echo '<table><tr>';

// column loop
for ($c = 1; $c <= $cols; $c++) {
  echo '<td><ul>';

  // item loop
  for ($i = 0; $i < count($areaArray); $i += $c) {
     echo '<li>...</li>';
  }

  echo '</ul></td>';
}

echo '</tr></table>';