2
私はこのような機能は、データベースからユーザーを取得する必要があります:キー配列として列のいずれかを使用して、データベースから配列を取得します
Array(
0 => {id => 555, name => Smith, firstname => William, points => 123}
1 => {id => 213, name => Hitchcock, firstname => Alfred, points => 95}
2 => {id => 999, name => James, firstname => Kevin, points => 66}
)
:これは、のような配列を返します
function getUsers(){
$db = db::getInstance();
$res = $db->prepare("
SELECT *
FROM `users`
ORDER BY `points` DESC
");
$res->execute();
if($res->rowCount()==0){
return null;
}
return $res->fetchAll();
}
フィールドの1つをキーとして使用する簡単な方法はありますか?この例では、私はフィールドid
は、配列のキーとして使用することもできますので、私はこの結果たい:
$result = [];
foreach($res->fetchAll() as $row){
$result[$row['id']] = $row;
}
return $result;
:私は手動でのような新しい結果配列を作成することによって、これを達成でき
Array(
555 => {id => 555, name => Smith, firstname => William, points => 123}
213 => {id => 213, name => Hitchcock, firstname => Alfred, points => 95}
999 => {id => 999, name => James, firstname => Kevin, points => 66}
)
をPHPやPDOはこれに対応した組み込みのソリューションを提供していますか?私は複雑さを(スピード/メモリ使用量のように)できるだけ低く保つことを試みています。これは、配列インデックスとしてSELECTからの第1列を使用して、列からその列を削除すること
return $res->fetchAll(PDO::FETCH_UNIQUE);
注
魅力的な作品です!ちょうど追加する: 'unique_key 'が必要ではなかった、それはその部分なしで完璧に動作するようだ。 – user2015253