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 を使用することです。このアプローチでは、最初の列を配列キーとして指定し、残りの列を値として設定し、不必要なネストや配列操作を行わずに、目的のグループ化された連想配列を生成します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3