php - MySqli 查询多维数组

标签 php mysql arrays

我正在尝试将结果从 MySQLi select 转换为多维数组,但没有得到想要的结果。这是从 SELECT 语句返回的数据:

+----+------------+
| id | value      |
+----+------------+
| 2  | Red        |
| 2  | Blue       |
| 1  | Green      |
| 1  | Yellow     |
| 1  | Orange     |
| 3  | Teal       |
+----+------------+

可以有多个具有相同 ID 的值。我的获取语句如下所示:

while ($stmt->fetch()) {
    $colors[] = array($value);
}

结果是这样的:

Array
(
    [0] => Array
    (
        [0] => Red
    )
    [1] => Array
    (
        [0] => Blue
    )
    [2] => Array
    (
        [0] => Green
    )
    [3] => Array
    (
        [0] => Yellow
    )
    [4] => Array
    (
        [0] => Orange
    )
    [5] => Array
    (
        [0] => Teal
    )
)

但是,我真正想要的是数组看起来像这样:

Array
(
    [0] => Array
    (
        [0] => Red
        [1] => Blue
    )
    [1] => Array
    (
        [0] => Green
        [1] => Yellow
        [2] => Orange
    )
    [2] => Array
    (
        [0] => Teal
    )
)

如有任何帮助,我们将不胜感激!

最佳答案

或者,您可以使用 id 在循环内对它们进行分组。示例:

$stmt->bind_result($id, $value);
while ($stmt->fetch()) {
    $colors[$id][] = $value;
}

// $colors = array_values($colors); // optional, if you want to reindex the keys

关于php - MySqli 查询多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292031/

相关文章:

javascript - 如何将 HTML5 Canvas 保存为服务器上的图像?

python - numpy 中用最少内存对上三角元素求和的最快方法

php - 可过滤的侧边栏已替换为错误消息

javascript - 使用前端表单/输入框和 ajax 更新帖子元,无需重新加载页面

php - 数据库更改记录中的页面刷新

MySQL PDO 检查电子邮件是否存在

mysql - 如何在 SQL 中使用依赖子查询使查询执行得更好?

java - 应该打印数组的所有值的方法仅返回空值。

c# - C#中所有的数组都实现了哪些接口(interface)?

php - 为什么非贪婪匹配会消耗整个模式,即使后面跟着另一个非贪婪匹配