对foreach循环的两个元素进行配对


Pair two elements of a foreach loop

我有一个foreach循环(看,它在下面),我得到了一些元素。当将这些数据存储到MySQL中时,我想选择每个"count[]"属于哪个类别(这里标记为"interaction[]")。例如,如果第1行计数为97,而这些恰好是"cha",我可以从下拉菜单中选择"cha",设置它的值,并将其输入到表中。希望对title[].

的每个实例都这样做。

是的,json部分工作。是的,数据被填充。是的,我找过了。没有错误。

希望这有意义,我真的无法表达我的感激之情。我希望有一天能够不问这些愚蠢的问题,但是,嘿,这是一种方式。如果还有什么需要澄清的,请告诉我。

    foreach ($json->report->data as $key=>$el) {
           ?> 
           <input type="hidden" value="<?php echo $key; ?>" name="row[]">
            <?php
                echo "<tr><td><input name='"title[]'" value='"".$el->name."'" />".$el->name."</td>
                <td><input name='"count[]'" value='"".$el->counts[0]."'" />".$el->counts[0]."</td>
                <td>".$key."</td>
                <td><select name='"interaction[]'"><option value='"blah'">blah</option><option value='"ha'">ha</option><option value='"cha'">cha</option></select></td></tr>";
        }

如果您想在POST之后匹配交互值和计数值,您可以遍历交互数组并匹配计数数组。

foreach ($_POST['interaction'] as $key => $value) {
    $insertText = $value;
    $insertCount = $_POST['count'][$key];
}

然后执行插入,无论您的数据库是如何设置的。最好使用PDO或MySQLi。

示例(未测试):

<?php
    $sql = "INSERT INTO my_table (interaction, count) VALUES ";
    $data = array();
    $x = 0;
    foreach ($_POST['interaction'] as $key => $value) {
        if ($x > 0) $sql .= ", ";
        $sql .= "(:interaction_{$x}, :count_{$x})";
        $data['interaction_' . $x] = $value;
        $data['count_' . $x] = $_POST['count'][$key];
    }
    $query = $pdo->prepare($sql);
    $query->execute($data);