2011-08-31 60 views
0

我正在尋找存儲已經存儲爲ID的數據庫值,並通過一個數組中的每個循環檢索。如何使用逗號分隔值存儲數組中的數據庫值

我已經試過這樣的事情,但它不工作:

foreach ($list as $item) 
{ 
    $commaSeparated = implode(',' , $item['id'); 
} 
echo $commaSeparated; 

哪裏item['id']是特定列拉出查詢。如果我使用$ list變量,那麼我會得到我不想要的查詢的完整結果。

但是,我的錯誤導致了這一點:

Warning: implode(): Invalid arguments passed 

這是正確地返回了什麼,我需要:

foreach ($list as &$id) 
     { 

      $listArr[] = $id['toolbar_id']; 

      $commaSeparated = implode(',' , $listArr) 

          echo $commaSeparated; 

回答

2

那是因爲你需要執行

$commaSeparated = implode(',' , $list); 

這並不是雖然很好的做法。您不應該將列表存儲爲數據庫中以逗號分隔的項目。相反 - 爲其創建附加表並每行存儲1個項目。

+0

我miscommunicated我的問題。這些項目已經來自數據庫。他們是單身份證號碼。我試圖將從查詢中提取的這些值中的每一個存儲到數組中。儘管如果我使用$ list作爲存儲在數組中的值,它並不會像我想要的那樣提取特定的列值。我將在上面編輯我的問題。 – lockdown

+0

@Brandon Ellis:你需要明顯改寫你的問題然後 – zerkms

+0

是的。我只有。我很抱歉。 – lockdown

2

的第二個參數implode需求是一個數組。試試這個:

$commaSeparated = implode(',', $list); 
0

我建議你嘗試一種的var_dump($變量),其中$變量是...變量,其中存儲數據,知道它的結構,會告訴你什麼樣的數據預計,如何迭代它。

0

如果數據格式不正確,您需要執行更多檢查以避免錯誤。

if(is_array($list)){ 
    foreach ($list as $item) 
    { 
     if(is_array($item)) 
      $commaSeparated = implode(',' , $item); 
    } 
    echo $commaSeparated; 
} 
相關問題