0

私は例えば:

<?php $array = array(aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj,kkk,lll,mmm,nnn, 111,222,333); ?>

foreachを使用する場合:

foreach($array as $a){
  echo $a . '<br />';
}

これはデータを表示します:

aaa
bbb
ccc
ddd
eee
fff
...
111
222
333

しかし、高さの最大位置を設定したいと思います-たとえば、データが長すぎる場合、これは新しい列にある必要があります:

aaa eee ... 111
bbb fff ... 222
ccc ... ... 333

これにはどのように最善の方法がありますか?DIV または TABLE を使用できます。

4

6 に答える 6

1

PHP にカウンターを追加する必要があります。ここでは、div3 つの要素ごとに新しい要素を作成し、すべてのdiv要素を左にフロートします。

PHP:

$array = array("aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","iii","jjj","kkk","lll","mmm","nnn", "111","222","333");

$index = 0;
foreach($array as $a){
  $index = $index + 1;
  if ($index % 3 === 1){
      echo '<div class="column">';
  }
  echo $a . '<br />';
  if ($index % 3 === 0){
      echo '</div>';
  }
}
if ($index % 3 !== 0){
      echo '</div>';
}

また、CSS には次のものが必要です。

.column{
  float:left;
}
于 2012-07-19T09:55:28.670 に答える
0
$array = array("aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","iii","jjj","kkk","lll","mmm","nnn", "111","222","333");

$i=0;
    $maxRow=3; //Fixed row
    $col=(count($array)/$maxRow)+1;
    echo "<table><tr>";

    foreach($array as $a){

        if($i%$col==0)
        {
            echo '</tr><tr>';
        }
        echo '<td>'.$a.'</td>';
      $i++;
    }
    echo "</tr></table>";
于 2012-07-19T10:02:43.963 に答える
0
$i=0;
$max=3; //Maximum column 
echo "<table><tr>";
foreach($array as $a){

if($i%$max==0)
{
    echo '</tr><tr>';
}
echo '<td>'.$a.'</td>';
$i++;
}
echo "</tr></table>";
于 2012-07-19T09:47:32.730 に答える
0

PHP では、 wordwrap()を使用できます。

于 2012-07-19T09:31:52.243 に答える
0

あなたの質問を正しく理解できれば、DIVS を使用して高さと幅をピクセル単位で設定できます。何が機能するかをテストします。高さと幅に満足できない場合は、javascript を使用して文字数を数えることもできます。

最後になりましたが、PHP にカウンターを追加して、新しい列にブレークまたは div を追加するだけです。または、ロットをワードラップすることもできます。

于 2012-07-19T09:32:00.400 に答える
0

これはjavascriptの例です - http://jsfiddle.net/ZAWKq/

上記の例で行ったように、div を使用して固定幅を設定します。PHPでは、次のようになります-

<div>
<?php 
foreach($array as $a){
   echo ' '.$a;
}
?>
</div>

あとはCSSに任せます。

于 2012-07-19T09:34:35.667 に答える