2012-09-05 51 views
4

使用PHP讓我們假設我已經使用fetch_object方法成功地讀取從MySQL表中的記錄,我在一個變量調用$輸出保持行數據:將列添加到現有的PHP陣列

while($row = $result->fetch_object()) 
{ 
    $output[] = $row; 
} 

如果我想添加兩個額外的字段:「cls」和「parentID」到$輸出,就好像它們是$行的分開,我將如何實現這一點?謝謝!通過數組引用

while(...) { 
    $row->cls = ...; 
    $row->parentID = ...; 
    $output[] = $row; 
} 

回答

10

循環,並添加while循環後,你想要什麼:

+1

謝謝尼克 - 一如既往的完美解決方案。 – user1532602

+0

會做。再次感謝。 – user1532602

+0

偉大的解決方案,我正在使用它,並尋找一種方法來獲取$ output [0] - > parentID的數據,這怎麼能夠實現? – Sesamzaad

1

既然你改變了你的問題的代碼片段,而不是現在(更新版)試試這個

foreach($output as &$row) { 
    $row->cls = 0; 
    $row->parentID = 1; 
} 

您還可以在while循環中做到這一點:

while($row = $result->fetch_object()) { 
    $row->cls = 0; 
    $row->parentID = 1; 
    $output[] = $row; 
} 
+0

'$ output'是一個多維數組,所以'$輸出[ 'CLS']'WO不能正常工作。我相信OP正在處理一個對象數組(因此'fetch_object()'調用),所以'[]'表示法也會失敗。 – nickb

+1

如果我json_encode(),它將字段放在行數據數組之外: – user1532602

+0

嗯,當我寫這個時,你的問題中沒有'$ output []'。然後,您必須將新數據添加到$ row,然後才能將其分配給$ output。現在修復答案。 –