首页  >  文章  >  后端开发  >  如何使用 PDO 检索按列值分组的关联数组?

如何使用 PDO 检索按列值分组的关联数组?

Barbara Streisand
Barbara Streisand原创
2024-10-22 07:37:31642浏览

How to Use PDO to Retrieve an Associative Array Grouped by Column Values?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn