0

私は次のことについて頭をつかむのに真剣に苦労しています。PHP 配列に基づいて、行テーブルごとに 3 つのデータ セルを作成したいと考えています。つまり、配列に 3 つの値がある場合、次のような構造が必要です。

<?php
$arr = array("value1","value2","value3");
?>

// Expected outcome:
<table>
      <tr>
           <td>value1</td>
           <td>value2</td>
           <td>value3</td>               
      </tr>
</table>

ただし、配列に 4 番目の値を追加する必要がある場合は、別の行を動的に作成する必要があります。つまり、次のようになります。

<?php
$arr = array("value1","value2","value3","value4");
?>

// Expected outcome:
<table>
      <tr>
           <td>value1</td>
           <td>value2</td>
           <td>value3</td>               
      </tr>
      <tr>
           <td>value4</td>
           <td></td>
           <td></td>               
      </tr>
</table>

PHPとjQueryの組み合わせであっても、どのソリューションでもかまいませんが、上記を達成するために使用できるものだけです。

4

6 に答える 6

5

モジュロを使用します。そのようです:

<table>
<tr>
<?php
    $i = 1;
    foreach ($arr as $val){
        $i++;
        print '<td>'.$i.'</td>';
        if ($i % 3 == 0){
            print '</tr><tr>'^;
        }

    }
?>
</tr>
</table>

正しい html 出力のためにさらにいくつかのものを追加する必要がありますが、「難しい」部分は完了です。

単にコピーして貼り付けないでください。コードをテストしていないため、醜いです。

于 2012-04-24T13:23:42.057 に答える
2

array_chunk関数を使用して配列をグループに分割し、次にいくつかのループを実行します。

<?php
$arr = array("value1","value2","value3","value4");
echo "<table>";
$rows = array_chunk($arr,3);
foreach($rows as $row) {
  echo "<tr>";
  foreach($row as $cell) {
    echo "<td>".$cell."</td>";
  }
  echo "</tr>";
}
echo "</table>";
?>
于 2012-04-24T13:25:10.010 に答える
1

ロジックの実装は次のとおりです。

<?php
$input_array = array('a', 'b', 'c', 'd', 'e','f','g');
$new_array = array_chunk($input_array, 3);

$table = '<table border="1">';
foreach($new_array as $value){
$table .= '<tr><td>'.$value[0].'</td><td>'.$value[1].'</td><td>'.$value[2].'</td>    </tr>';
}
$table.='</table>';

echo $table;
?>
于 2012-04-24T13:41:07.660 に答える
0

これは、フォーマットされたhtmlを生成する私の提案です

<table>
    <tr>    
    <?php
    $i = 0;
    $items_per_row = 3;

    foreach ($arr as $elm) {
        echo '<td>'.$elm.'</td>';

        if (++$i % $items_per_row == 0 && $i < count($arr) - 1)
            echo '</tr><tr>';
    }
    ?>
    </tr>
</table>
于 2012-04-24T13:37:34.583 に答える
0
<table><tr>
<?php
$arr = array("value1","value2","value3","value4","value5","value6","value7");

for($i=0;$i<count($arr)%3;$i++)
  $arr[] = null;

foreach($arr as $key => $val){

  if(($key)%3==0)
    echo '</tr><tr>';

  echo '<td>'.$val.'</td>';

}
?>
</tr></table>
于 2012-04-24T13:26:00.497 に答える
0
<table>
    <tr>
        <?php
        $x = 0;
        foreach($arr as $v){
            if ($x % 3 == 0 && $x != 0){
                echo '</tr><tr>';
            }

            echo '<td>'.$v.'</td>';
            $x++;
        }
        ?>
    </tr>
</table>
于 2012-04-24T13:26:37.900 に答える