php – 我可以使用PDO :: FETCH_GROUP按两个值对结果进行分组
发布时间:2020-12-13 13:27:59 所属栏目:PHP教程 来源:网络整理
导读:我使用 PHP和PDO从数据库中检索一组值,然后按第一列分组,使用以下代码: $result = $sth-fetchAll(PDO::FETCH_GROUP|PDO::FETCH_NUM); 这意味着如果我的数据采用以下格式: |Column1 |Column2 |Column3||1 |2 |a||1 |2 |b| 它返回为: 1: { [Column2: 2,Colu
我使用
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常量的组合有关吗? 谢谢
如您所见,通过使用PDO :: FETCH_GROUP将其与一个指定列分组,可以轻松地轻松地重建阵列.你需要的是将二维数组(数据库的结果)转换为三维数组,但不可能以这种方式重建它.
您需要通过嵌套循环手动执行此操作.这很简单,像这样: // let's assume $result is: $result = [ [1,2,'a'],[1,'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" } } } 它看起来像你需要的东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |