PHP数组在一个列表中得到每个5


PHP array get each 5 in a list

$cars=数组("A"、"B"、"C"、"D"、"E"、"F"、"G"、"H"、"I"、"J"(;

我需要在这个结构内每5行得到2个col-lg-2:

$car

它是怎么做到的?

对于前5行,我做了这个:

<div class='col-lg-2'><ul>
<?php $i=0;
foreach($cars as $car){
  echo "<li>$car</li>";
  $i++;
  if($i==5) break;
} ?>
</ul></div>

我怎样才能呼应下一个5?

使用array_chunk()

通过使用array_chunk(),您可以生成一个多维数组,每个数组中有5个元素。

$cars = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J");
$carsGrouped = array_chunk($cars, 5);
foreach($carsGrouped as $carGroup){
 echo "<div class='col-lg-2'><ul>";
 foreach($carGroup as $car) {
    echo "<li>{$car}</li>";
 }
 echo "</ul></div>";
} 

https://eval.in/652005

使用模量

通过使用模运算符(%(,您可以检查计数器($i(是否可被5整除,如果是,则结束当前的<div>并开始新的<div class='col-lg-2'>

$cars = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J");
echo '<div class=''col-lg-2''>
        <ul>';
$i = 0;
foreach($cars as $car){
    ++$i;
    echo '<li>'. $car .'</li>';
    if($i>1 AND ($i%5)===0 AND $i<count($cars)) { //We've printed 5 $car, we need to do another "group".
        echo '</ul>
           </div>
           <div class=''col-lg-2''>
               <ul>';
    }
} 
echo '</ul>
  </div>';

https://eval.in/651965

使用建议的模除法运算符,这里有一个可能的解决方案;

$cars       = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "s", "ee");
$iCount     = 0;
$sOutput    = '';
foreach($cars as $sCarName){
    if ($iCount % 5 == 0)
       $sOutput .= ($iCount > 1 ? "</ul>'n</div>'n" : '')."<div class='col-lg-2'>'n<ul>'n";
    $sOutput .= "<li>".$sCarName."</li>'n";
    $iCount ++;
}
if( $iCount > 1 ){
    $sOutput .= "</ul>'n</div>";  
} 
echo $sOutput;

注意:将div作为UL的子级是无效的html,此处解释

<?php
$cars = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J");
?>
<div class='col-lg-2'><ul>
<?php 
$i=0;
foreach($cars as $car_name){
echo "<li>$car_name</li>";
$i++;
if($i==5): 
    echo "</ul></div><div class='col-lg-2'><ul>";
    $i = 0;
endif;
} 
?>
</ul></div>