php - PDO fetchAll 数组转为一维

标签 php arrays pdo

这可能是一个简单的问题,但我很难理解如何解决它。我有一个表单,允许用户选择“自定义”或“所有”员工”来分配工作。

如果选择自定义,则用户通过单击每个复选框来选择员工,然后我将它们插入到职位表中。这会生成下面的数组(3、1、10 是员工 ID)

Array
(
    [0] => 3
    [1] => 1
    [2] => 10
)

如果选择“所有员工”,我首先查询一个 select 语句以从员工表中获取所有员工 ID,然后将它们插入到工作表中,与上面相同。然而,这会产生数组:

Array
(
    [0] => Array
        (
            [staffID] => 1
            [0] => 1
        )

    [1] => Array
        (
            [staffID] => 23
            [0] => 23
        )

    [2] => Array
        (
            [staffID] => 26
            [0] => 26
        )

    [3] => Array
        (
            [staffID] => 29
            [0] => 29
        )
)

如何将上面的数组转换为显示的第一个数组?

我使用下面的代码来查询数据库以获取所有员工 ID,然后插入它们。

    $select = $db->prepare("SELECT staffID FROM staff");
    if($select->execute())
    {
       $staff = $select->fetchAll();
    }

    for($i = 0; $i<count($staff); $i++)
    {
    $staffStmt = $db->prepare("INSERT INTO staffJobs (jobID, userID) VALUES (:jobID, :staffID)");
    $staffStmt->bindParam(':jobID', $jobID, PDO::PARAM_INT);
    $staffStmt->bindParam(':staffID', $staff[$i], PDO::PARAM_INT);

    $staffStmt->execute();              

}

第一个数组插入得很好,但最后一个数组为 StaffID 插入了零。

有什么建议吗?

谢谢=)。

最佳答案

看看example 2在手册中。在您的第一个查询中,您可以使用:

$staff = $select->fetchAll(PDO::FETCH_COLUMN, 0);

第二个数组将与第一个数组具有相同的形式。

关于php - PDO fetchAll 数组转为一维,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57934998/

相关文章:

php - Facebook 连接 - 手机

php - 从 PHP 数组中提取字符串

php - MySQL 崩溃,错误 "Lost connection to MySQL server at ' 读取初始通信数据包',系统错误 : 111

php - 如何在 Swift 中从 PHP 返回 JSON?

php - PHP 与 MYSQL 的连接繁忙?

php - jQuery Ajax 使用 multipart/form-data 提交表单元素(图像/视频)

php - 为什么这个 while 循环中的表达式会导致无限循环?

javascript - 按数组的值对数组进行排序

java - 尝试将数组拆分为 arrayList

python - 扁平化numpy数组,还能保留值位置的索引?