2013-01-25 82 views
0

我正在開發一個項目,並且該項目的一部分要求我將一些sql結果轉換爲一個類對象數組。設置數組鍵初始化(pdo fetch_class)

爲了方便起見,我更願意將我的數組鍵設置爲sql行的主鍵,以便我可以快速訪問它們。

我現在正在做的方式是重新映射每個對象到一個新的數組,我手動設置鍵爲$ object-> id。有沒有什麼辦法可以讓pdo在獲取初始數組的時候這麼做,所以我不需要去做我正在做的事情。

回答

1

嗯,你可以這樣做:

array_map(
    'reset', 
    $stmt->fetchAll(
     PDO::FETCH_GROUP|PDO::FETCH_CLASS, 
     'className' 
    ) 
); 

但這未必比你現在正在做什麼漂亮得多。另請參閱herehere

或者可能涉及PDO::FETCH_KEY_PAIR

+0

漂亮對我來說不算什麼大事,我只是想找到一個解決方案,將有最好的表現。 我在想,將對象複製到一個新的數組將是我的內存命中。 我喜歡你的解決方案,我可能會嘗試實施它。謝謝:) – Adrian

+0

我喜歡這個解決方案,但它並沒有把主鍵帶入課堂。假設該類有一個PK字段,該值將爲NULL。 – Carl