微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以使用PDO :: FETCH_GROUP将结果按两个值分组

如何解决我可以使用PDO :: FETCH_GROUP将结果按两个值分组

如您所见,通过将数组与一个指定的列进行分组,可以轻松地轻松重建数组PDO::FETCH_GROUP。您需要将二维数组(数据库的结果)转换为三维数组,但是 以这种方式重建它。

您需要通过嵌套循环手动进行操作。很简单,就像这些:

// let's assume $result is:
$result = [
    [1, 2, 'a'],
    [1, 2, 'b']
];

$newResult = [];
foreach( $result as $row ) {
    $newResult[$row[0]][$row[1]][] = $row[2];
}

var_dump($newResult);

它返回:

array(1) {
  [1]=>
  array(1) {
    [2]=>
    array(2) {
      [0]=>
      string(1) "a"
      [1]=>
      string(1) "b"
    }
  }
}

看起来就像您所需要的。

解决方法

我正在使用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常数吗?

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。