【发布时间】:2014-06-09 13:36:38
【问题描述】:
我正在使用 PHP 和 PDO 从数据库中检索一组值,然后按第一列分组,代码如下:
$result = $sth->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_NUM);
这意味着如果我的数据是这种格式:
|Column1 |Column2 |Column3|
|1 |2 |a|
|1 |2 |b|
它返回为:
1: {
[Column2: 2, Column3: a],
[Column2:2, Column3:b]
}
我将如何按 Column1 和 Column2 进行分组,以便得到类似的结果:
1:
{
2:
{
Column3: a,
Column3:b
}
}
这可能与 PDO 常量的组合有关吗?
谢谢
【问题讨论】:
-
就我个人而言,我从不理会这种晦涩难懂的魔法,而是使用平庸的 while 循环手动填充任何复杂的数组
-
PDO 常量的问题是,如果它们恰好按照您的意愿行事,那么它们就是完美的。例如,PDO::FETCH_GROUP|PDO::FETCH_NUM 将需要大量迭代数组和十几行代码。我要解决的问题是,如果他们不完全按照您的意愿行事,正如您所说,您就是在戳一个似乎不起作用的魔法盒
-
FETCH_GROUP始终使用第一列作为键。我没有看到任何地方可以指定额外的嵌套级别。 -
我认为最好告诉我们您真正想做什么。因为可能有更简单的方法来代替。