PDO: 列値による連想配列のグループ化
特定の列値によるデータのグループ化は、データセットの整理と操作に役立ちます。この質問では、PDO の fetchAll メソッドを使用してこれを実現する方法を検討します。
提供された例は、名前、年齢、性別、役職などの列を持つ従業員のデータセットを示しています。目的は、名前列によってグループ化された連想配列を取得することで、次のような配列構造になります。
[ 'Antony' => ['age' => 34, 'sex' => 'M', 'position' => 'programmer'], 'Sally' => ['age' => 30, 'sex' => 'F', 'position' => 'manager'], 'Matthew' => ['age' => 28, 'sex' => 'M', 'position' => 'designer'], ]
PDO::FETCH_GROUP|PDO::FETCH_ASSOC を使用する最初のアプローチでは、不要なレベルのネストが発生します。これを解決するには、質問では PDO::FETCH_GROUP|PDO::FETCH_ASSOC|PDO::FETCH_FUNC でコールバック関数を使用することを提案しています。ただし、配列ではなく個々の要素を受け取るコールバック関数で問題が発生します。
この問題の解決策は、PDO::FETCH_GROUP|PDO::FETCH_UNIQUE を使用することです。このアプローチでは、最初の列を配列キーとして指定し、残りの列を値として設定し、不必要なネストや配列操作を行わずに、目的のグループ化された連想配列を生成します。
以上がPDO を使用して列の値によって連想配列をグループ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。