PDO:按列值对关联数组进行分组
按特定列值对数据进行分组对于组织和操作数据集非常有用。本问题探索了一种使用 PDO 的 fetchAll 方法来实现此目的的方法。
提供的示例演示了包含姓名、年龄、性别和职位等列的员工数据集。目标是获得按名称列分组的关联数组,从而得到如下数组结构:
[ 'Antony' => ['age' => 34, 'sex' => 'M', 'position' => 'programmer'], 'Sally' => ['age' => 30, 'sex' => 'F', 'position' => 'manager'], 'Matthew' => ['age' => 28, 'sex' => 'M', 'position' => 'designer'], ]
使用 PDO::FETCH_GROUP|PDO::FETCH_ASSOC 的初始方法引入了不需要的嵌套级别。为了解决这个问题,问题建议使用带有 PDO::FETCH_GROUP|PDO::FETCH_ASSOC|PDO::FETCH_FUNC 的回调函数。然而,它遇到了回调函数接收单个元素而不是数组的问题。
此问题的解决方案是使用 PDO::FETCH_GROUP|\PDO::FETCH_UNIQUE。此方法将第一列指定为数组键,并将其余列设置为值,从而生成所需的分组关联数组,而无需不必要的嵌套或数组操作。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3