2012-07-20 65 views
0

試想一下,你爲了獲取一些數據有一個數據庫查詢(在這個例子中姓名和年齡):使用數組描述鍵bucle

while ($submission = db_fetch_array($submissions)) { 
    $data[] = $submission['data']; 
} 

所以,最終$ data數組的轉儲會是這樣的:

Array 
(
    [0] = "John" 
    [1] = "33" 
) 

如果我想成立一​​個描述性的密鑰生成的代碼將是:

while ($submission = db_fetch_array($submissions)) { 
    $data[] = $submission['data']; 
} 

$data['name'] = $data[0]; 
$data['age'] = $data[1]; 

現在,如果我的數組中只有兩個字段,而我有10個或更多的字段,這在我看來有點多餘。

有沒有更多的邏輯方法來做到這一點?

注:db_fetch_array這是爲了獲取查詢作爲數組

回答

1

不現在就做,應該是什麼db_*()一個Drupal抽象,但我建議作爲關聯數組從數據庫中直接獲取數組

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    $data[] = $row; 
} 

這會產生一個關聯數組數組,其中內部關聯數組的鍵是列的名稱。

http://php.net/pdostatement.fetch

+0

我忘了說,但db_fetch_array這是爲了獲取一個查詢作爲一個數組Drupal的抽象。我不能像你指出的那樣做,因爲字段名稱總是「數據」,使用帶INNER JOIN的查詢我檢索單個實體的所有「數據」(在示例Person中)。 – rfc1484 2012-07-20 12:20:44

+0

你應該參考drupal文檔,因爲我懷疑它們提供了類似的功能。 – KingCrunch 2012-07-20 12:32:31

+0

你是對的,但在這種情況下相同的功能不起作用,因爲數據庫中的字段名稱始終是「數據」,因此所有數組鍵都將被命名爲「數據」。 – rfc1484 2012-07-20 12:44:52