fetchAllページのphp.orgにコメントがあります。
FETCH_GROUP
テーブルの主キーを配列キーとして使用するとFETCH_ASSOC
同時に、次のコマンドを使用したいと思うかもしれません。
// $stmt is some query like "SELECT rowid, username, comment"
$results = $stmt->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
// It does work, but not as you might expect:
$results = array(
1234 => array(0 => array('username' => 'abc', 'comment' => '[...]')),
1235 => array(0 => array('username' => 'def', 'comment' => '[...]')), );
しかし、少なくとも役に立たない番号付き配列を簡単に取り除くことができます。
$results = array_map('reset', $results);
コードは期待どおりに機能し、すべてが次の行だけで実行されます。
array_map('reset', $results);
ドキュメントのarray_mapとreset関数を読んだ後、両方を1行に組み合わせたときに結果がどのように生成されるのかよくわかりません。
それは安全な解決策ですか?この種の1行をお勧めしますか、それとも副作用であり、使用しないでください。つまり、同じ結果を生成するために単純な古いループを作成する必要がありますか?
2つの標準機能を組み合わせた単一ラインソリューションは、私にとって非常に魅力的なソリューションです。驚きがないことを確認したいだけです。