使用 PDO 检索按列值分组的关联数组
在数据库操作中,经常需要检索以特定格式组织的数据。一种这样的格式是按特定列的值分组的关联数组。这样可以轻松访问基于指定列的数据。下面是关于如何使用 PDO 实现此目的的讨论。
问题:给定一个包含以下数据的表:
name | age | sex | position |
---|---|---|---|
Antony | 34 | M | programmer |
Sally | 30 | F | manager |
Matthew | 28 | M | designer |
目标:按以下格式获取数据:
Array ( [Antony] => Array ( [age] => 34 [sex] => M [position] => programmer ) [Sally] => Array ( [age] => 30 [sex] => F [position] => manager ) [Matthew] => Array ( [age] => 28 [sex] => M [position] => designer ) )
解决方案: 要实现此目的,您可以使用 PDO 的 fetchAll 方法,其模式如下:
$pdo->query('SELECT * FROM employee')->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_UNIQUE);
FETCH_GROUP 模式按第一列的值对结果进行分组。 FETCH_UNIQUE 模式将分组列中每个唯一值的结果限制为一行。结果,您将获得一个关联数组,其中列值作为键,其余列作为值。
示例输出:
Array ( [Antony] => Array ( [0] => (age: 34, sex: M, position: programmer) ) [Sally] => Array ( [0] => (age: 30, sex: F, position: manager) ) [Matthew] => Array ( [0] => (age: 28, sex: M, position: designer) ) )
请注意输出包含每组一行的数组。这是因为 FETCH_UNIQUE 模式可确保仅检索每个组的第一行。
以上是如何使用 PDO 检索按列值分组的关联数组?的详细内容。更多信息请关注PHP中文网其他相关文章!