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