创建数组不像我想象的那样工作

Creating Array not working as I thought

我对数组真的很困惑,我希望有人能帮助我一些。

我正在尝试将用户选择的各种图片存储在 mysql 数据库中(一次最多可选择 3 张图片)。这些选择实际上是每张图片下方的复选框,我想将这些选择存储为数组中的 $pic_id。

选择正在存储在我的数据库中,但似乎没有像我预期的那样为它们分配键,我似乎无法使用它们。

我希望能够使用图片 ID 来显示所做的选择。

这是我的结果: [7] => 11,6 [8] => 9,8

但我需要单独获取这些变量。 我希望这样: [7] => 11, [8] => 6, [8] => 9, [9] => 8

表格:

 <form action="insert.php" method="GET">
    <?php
    <input type=\"checkbox\" name=\"pic_id[]\" value=".$row['id'].">
    <input type="submit" name="submit" value="Add" />
    ?>

insert.php

$checkBox = implode(',', $_GET['pic_id']);
if (isset($_GET['submit'])) {
$sql="INSERT INTO pics (pic_id) VALUES ('" . $checkBox . "')"; 

打印数组

<?php
    $sql="SELECT * FROM pics";
    $query = mysqli_query($conn, $sql);
    $myArray = Array();
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
    $myArray[]=$row['pic_id'];  
    }
 print_r($myArray);
?>

见上面的结果。

就像在数据库中插入时连接它们一样分隔值。然后遍历结果并将它们添加到您的数组中。

<?php
    $sql="SELECT * FROM pics";
    $query = mysqli_query($conn, $sql);
    $myArray = array();
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
        foreach(explode(',', $row['pic_id']) as $id) {
            $myArray[]= $id;  
        }
    }
 print_r($myArray);
?>