首頁  >  文章  >  後端開發  >  如何使用 PDO 檢索按列值分組的關聯數組?

如何使用 PDO 檢索按列值分組的關聯數組?

Barbara Streisand
Barbara Streisand原創
2024-10-22 07:37:31644瀏覽

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