2010-04-03 46 views
1

我想在將數組傳遞給json_encode函數 之前將其他值添加到數組中,但我無法獲得正確的語法。將數組元素添加到從sql查詢返回的行中

$result = db_query($query); 

    // $row is a database query result resource 
    while ($row = db_fetch_object($result)) { 

    $stack[] = $row; 
       // I am trying to 'inject' array element here 
    $stack[]['x'] = "test"; 
} 

echo json_encode($stack); 

回答

3

如果它是一個數組,你可以直接添加值:

$row['x'] = 'test'; 
$stack[] = $row; 

如果它是一個對象,你可以添加其他屬性:如果你想保持物體

$row->x = 'test'; 
$stack[] = $row; 

和額外值分開:

$data = array($row, 'x' => 'test'); 
$stack[] = $data; 
+0

那是我的第一個傾向,但它給 在MySQL返回的值是一個關聯「在不能使用類型爲stdClass的對象作爲排序」對應於獲取行的字符串數組。 在Drupal的數據庫抽象層中,返回的值是一個「數據庫查詢結果資源」。 – bert 2010-04-03 00:19:36

+0

編輯我的答案。 – 2010-04-03 00:32:52

+0

現在爆炸。我正在使用第二個選項。 – bert 2010-04-03 00:50:35

0

但這確實有效。

$stack[] = $row;  
$row->x = 'test'; 
0

如何像:

$row['x'] = 'test'; 
$stack = $row;