我有一個查詢,從數據庫中獲取有關畫廊類別的信息,並將其加載到數組中,以便在整個腳本中的多個位置使用。使用colum來定義鍵使用mysqli_fetch_all
$q_gals = "SELECT `gal_id`, `gal_name` FROM `cms_galleries` ORDER BY `gal_sort` ASC, `gal_id` DESC";
$r_gals = $dbc->query($q_gals);
if (($r_gals) && ($r_gals->num_rows > 0)) {
$galleries = $r_gals->fetch_all(MYSQLI_ASSOC);
}
我寧願有$galleries
陣的鑰匙是從查詢gal_id
值。我知道我可以簡單地通過將結果與一個while
循環迭代做到這一點,手工打造的陣列,因爲我想它:
$galleries = array();
while($row_gal = $r_gal->fetch_assoc()) {
$galleries[$row_gal['gal_id']] = $row_gal['gal_name'];
}
並坦率地說,它主要是在整潔的代碼,fetch_all
給了我,這讓我想要做到這一點。這不是一個巨大的腳本,兩者之間的任何性能差異都是無關緊要的。我可以,我想通過現有的數組循環並用gal_id
值更新密鑰,但這看起來有些自欺欺人。
對我而言,這是一廂情願嗎?或者是否有一些晦澀的技巧可以實現這一點?
如果您只想要gal_id,那麼您可以通過在SELECT語句中添加GROUP_CONCAT(gal_id)來替換查詢,該語句只會使用逗號分隔的字段值給出一行。 –
不,我想'gal_id'和'gal_name'列,只是'gal_id'作爲數組的鍵,'gal_name'作爲值。 –
請檢查以下鏈接中的示例#3部分: http://php.net/manual/en/pdostatement.fetchall.php –