-1

チェックボックス配列データを3列のテーブルに入れようとしました。

$aA から Z までの 26 個のデータを含むという名前の配列があります。

次に$b、いくつかのデータを含むという名前の別の配列があります。

array のデータを含む 26 個のチェック ボックスを備えた 3 列のテーブルを作成したいと考えています$a

データが に含まれている場合$b、チェックボックスがオンになり、そうでない場合はオフになります。

以下は私のコードです。チェックボックスとテーブルが正しく表示されるように、ループをフォーマットする方法がわかりません。助けてください。

<html>
<body>
<table>
<?php

$a = array("A", "B", "C", "D", "E","F","G","H","I","J","K","L","M","N","O","P","Q","R","s","T","U","V","W","X","Y","Z");
$b = array("A","C","G","L","O","P","R","X","Z");
$a_size=count($a);

$tr=$a_size/3;
$reminder=$a_size%3;

if ($reminder!=0)
{
$tr+=1;
}

for($i=0;$i<$tr;$i++)
{
echo "<tr>";
foreach ($b AS $c)
{
    for($j=0;$j<3;$j++)
    {
        if(in_array($c,$b)) 
        {
            echo "<td><input name=\"system[]\" type=\"checkbox\" value=\"$c\" CHECKED> $c </td>";
        } 
        else
        {
            echo "<td><input name=\"system[]\" type=\"checkbox\" value=\"$c\"> $c </td>";
        }
    }
}   
echo "</tr>";
}
?>
</table>                                                
</body>
</html>                                                     
4

1 に答える 1

2

少し複雑にしすぎていると思います。この状況に私がアプローチする方法は次のとおりです。

<?php
    $a = array("A", "B", "C", "D", "E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    $b = array("A","C","G","L","O","P","R","X","Z");
?>
<table>
    <?php foreach ($a as $k => $v) : ?>
    <tr>
        <td><?php echo $v; ?></td>
        <td><input type="checkbox" name="system[]" value="<?php echo $v; ?>" <?php if (in_array($v, $b)) echo 'checked'; ?> /></td>
        <!-- add as many td's here as you like -->
    </tr>
    <?php endforeach; ?>
</table>

レイアウトを「反転」する別の方法を次に示します。

<?php
    $a = array("A", "B", "C", "D", "E","F","G","H","I","J","K","L","M","N","O","P","Q","R","s","T","U","V","W","X","Y","Z");
    $b = array("A","C","G","L","O","P","R","X","Z");
?>
<table>
    <?php for ($i = 0; $i < 3; $i++) : ?>
    <tr>
        <?php foreach($a as $k => $v) : ?>
        <td><?php echo $v; ?><input type="checkbox" name="system[]" value="<?php echo $v; ?>" <?php if (in_array($v, $b)) echo 'checked'; ?> /></td>
        <?php endforeach; ?>
    </tr>
    <?php endfor; ?>
</table>

チャットでの話し合いの後、お探しのコードを入手しました。

<table>
    <tr>
    <?php for($i = 1; $i < count($a); $i++) : $j = $i-1; ?>
        <td><?php echo $a[$j]; ?><input type="checkbox" name="system[]" value="<?php echo $a[$j]; ?>" <?php if (in_array($a[$j], $b)) echo 'checked'; ?> /></td>
        <?php if($i % 3 === 0) echo '</tr><tr>'; ?>
    <?php endfor; ?>
    </tr>
</table>
于 2012-12-08T08:26:50.760 に答える