質問:
複数の列を持つデータベース (例: 「名前」、「年齢」、「性別」、「役職」など)、PDO の fetchAll メソッドを使用して特定の形式で連想配列を取得するにはどうすればよいでしょうか。各配列のキーは、指定された列のフィールドです(例: 「名前」) )、値はそのキーに対応する行です?
回答:
PDO の fetchAll メソッドを使用すると、次のフラグを指定して目的の結果を達成できます。
<code class="php">->fetchAll(\PDO::FETCH_GROUP|\PDO::FETCH_UNIQUE);</code>
FETCH_GROUP と FETCH_UNIQUE を組み合わせると、PDO は指定された列ごとに結果を自動的にグループ化し、重複レコードを除外しながら最初の列を各グループのキーとして設定します。これにより、追加のネスト レベルや現在のような後処理操作の必要がなくなります。
例:
次のサンプル データセットを考えてみましょう:
name | age | sex | position |
---|---|---|---|
Antony | 34 | M | programmer |
Sally | 30 | F | manager |
Matthew | 28 | M | designer |
推奨されるフェッチ方法を使用すると、目的の結果配列を取得できます:
<code class="php">$result = $pdo->query('SELECT * FROM employee')->fetchAll(\PDO::FETCH_GROUP|\PDO::FETCH_UNIQUE); print_r($result);</code>
これにより、次の連想配列が出力されます:
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 を使用して特定の列でグループ化された連想配列を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。