2016-10-10 16 views
1

私はarrayを持っています。その中の要素の今私はこの配列をループして、各liが15個の要素を持つことができるようにデザインを作成したいと考えています。次にliのセットは15の要素の倍数に基づいて作成されます。単純なPHPルーピングロジックで立ち往生

私の配列は正確に15個の要素とコードを作成しようとしています2 li、これは1つだけ作成する必要がありますli

私の論理があまりにも悪いか、何かが足りなくなっているかもしれません。ここで

は私のコードです: -

<?php $result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); ?> 
    <div class="slide"> 
    <?php $design = '<ul class="slides"><li><div class="MainSlider">'; 
     foreach($result as $key=>$row) 
     { 
      $design .= '<div class="MainSliderPic">'.$key.'</div>'; 
      if(($key+1)% 15 == 0){ 
      $design .= '</div></li><li><div class="MainSlider">'; 
      } 

      if(count($result) == $key+1){  
      $design .= '</div></li></ul>'; 
      } 
     } 
    echo $design; 
    ?> 
    </div> 
+0

'(($キー+ 1)%15 == 0){'%演算子は、15で割っ$キーの残りがある場合には、これを行う15に等しい意味問題する必要がある場合... –

+0

&ちょっとした入力: 6行目に '$ key'と書いてあります。 ...あなたは値ではなくキーを出力したいのですか? ($ keyを$ rowに置き換えることでできます) – Twinfriends

+0

あなたの条件によると15個のレコードがあるので、 'モジュロ(%)'条件が成立すると 'li'を閉じて新しい' li'を始めます。そして最後に 'li'とdivを終了します。もし' 15、30、45 ... 'レコードを持っていれば余分な' li'が得られます。 – KinjalMistry

答えて

1

開口部を混在させないでください。また、コード内のタグのクローズ。所属する場所とは別に実行します(例:

$design = '<ul class="slides">'; 
$n = 0; 
foreach($result as $key=>$row) { 
    if ($n == 0) 
     $design .= '<li><div class="MainSlider">'; 

    $design .= '<div class="MainSliderPic">' . $key . '</div>'; 

    ++$n; 
    if ($n == 15) { 
     $design .= '</div></li>'; 
     $n = 0; 
    } 
} 

$design .= '</ul>'; 
echo $design; 
1

は、コードを次試してみてください。

<?php $result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); ?> 
    <div class="slide"> 
    <?php $design = '<ul class="slides"><li><div class="MainSlider">'; 
     foreach($result as $key=>$row) 
     { 
      $design .= '<div class="MainSliderPic">'.$key.'</div>'; 
      if((($key+1)% 15 == 0) && (count($result) != ($key+1))){ 
      $design .= '</div></li><li><div class="MainSlider">'; 
      } 

      if(count($result) == $key+1){  
      $design .= '</div></li></ul>'; 
      } 
     } 
    echo $design; 
    ?> 
    </div> 
2

あなたはそれを達成するためarray_chunkを使用することができます。

$result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); 

$chunks = array_chunk($result, 15); 

foreach ($chunks as $chunk) { 
    echo '<ul><li>'; 

    echo implode('</li><li>', $chunk); 

    echo '</li></ul>'; 
} 
関連する問題