ホームページ > バックエンド開発 > PHPチュートリアル > PDO を使用して列の値でグループ化された連想配列を取得する方法

PDO を使用して列の値でグループ化された連想配列を取得する方法

Barbara Streisand
リリース: 2024-10-22 07:37:31
オリジナル
723 人が閲覧しました

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

PDO を使用して列の値でグループ化された連想配列を取得する

データベース操作では、特定の形式で編成されたデータを取得することが必要になることがよくあります。そのような形式の 1 つは、特定の列の値によってグループ化された連想配列です。これにより、指定された列に基づいてデータに簡単にアクセスできるようになります。ここでは、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 モードでは、グループ化列の一意の値ごとに結果が 1 行に制限されます。その結果、列の値がキーとして機能し、残りの列が値として機能する連想配列が得られます。

出力例:

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)
    )
)
ログイン後にコピー

出力には、グループごとに 1 行の配列が含まれます。これは、FETCH_UNIQUE モードにより各グループの最初の行のみが確実に取得されるためです。

以上がPDO を使用して列の値でグループ化された連想配列を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート