如何转换代码形式以获得上述数组


How to convert code form to obtain the above array

这是我的代码:

for ($g=1; $g<=$godziny; $g++)
{
    echo '<td style="text-align:center; padding: 5px 5px 5px 5px; width:'.(90/$godziny).'%;"><span class="text_19">'.((strlen($g) == 1) ? '0'.$g : $g).'</span></td>';
}
echo '</tr>';
$numrows = 0;
$result = db_query($dba, "select * from ed_frekwencja where id_ucznia='$id_ucznia' and status='ok' order by data_d, id asc");
while ($row = db_fetch_array($result)) 
{
    echo '<input type="hidden" name="frekwencja_id[]" value="'.$row['id'].'">';
    $arrf = explode('|', $row['frekwencja']); 
    echo '<tr class="onclickclass" style="text-align:center;">';
    echo '<td style="text-align:center; padding: 5px 5px 5px 5px;"><span class="text_26">'.$row['data_d'].'</span></td>';
    for ($i=1; $i<=(empty($godziny) ? 1 : $godziny); $i++) 
    {
        echo '<td>';
        echo '<select class="inputsb" name="frekwencja[]" style="width:45px;">';
        $kol = array('', 'x', 'y', 'z'); // array danych
        foreach($kol as $value) 
        {
            echo '<option value="'.$value.'" '.(($value == $arrf[$i-1]) ? 'selected' : '').'>'.$value.'</option>'; 
        }
        echo '</select>';
        echo '</td>';
    }
    echo '</tr>';
    $numrows++;
}
echo '</table>';

我现在有这样一个字符数组:

    Array
(
    [frekwencja_id] => Array
        (
            [0] => 1
            [1] => 5
            [2] => 3
            [3] => 4
        )
    [frekwencja] => Array
        (
            [0] => x
            [1] => y
            [2] => z
            [3] => x
            [4] => y
            [5] => z
            [6] => x
            [7] => y
            [8] => z
            [9] => x
            [10] => y
            [11] => z
        )
)

并且需要获得:

 Array
(
    [frekwencja_id] => Array
        (
            [0] => 1
            [1] => 5
            [2] => 3
            [3] => 4
        )
    [frekwencja_1] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
    [frekwencja_5] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
    [frekwencja_3] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
    [frekwencja_4] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)

为了实现上表,你需要改变什么以及在哪里?

更改第20行。您必须在选择名称中包含行id。

  echo '<select class="inputsb" name="frekwencja_'.$row['id'].'[]" style="width:45px;">';

这应该会产生所需的结果。但附带说明一下,您的代码中存在sql注入漏洞。永远不要将变量直接插入sql字符串。您应该查看PDO中准备好的语句。此外,在项目中使用某种模板可能是个好主意。你不应该把php和html混在一起。

hello只需用这个替换您的选择

echo '<select class="inputsb" name="frekwencja['.$i.'][]" style="width:45px;">';

你应该得到你想要的