如何使用逗号分隔值在数组中存储数据库值

时间:2011-08-31 01:40:36

标签: php mysql arrays

我希望存储已经存储为id的数据库值,并通过a检索数组中的每个循环。

我尝试过类似的东西,但它不起作用:

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;

5 个答案:

答案 0 :(得分:2)

implode的第二个参数需要是一个数组。试试这个:

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

答案 1 :(得分:2)

Implode函数接受分隔符和参数数组。然后你应该这样做:

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

echo $commaSeparated;

(资料来源:http://php.net/manual/pt_BR/function.implode.php

答案 2 :(得分:2)

这是因为您需要执行

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

虽然这不是一个好习惯。您永远不应将列表存储为数据库中以逗号分隔的项目。相反 - 为它创建附加表并每行存储1个项目。

答案 3 :(得分:0)

我建议你尝试一个var_dump($ variable),其中$ variable是...变量,数据存储在其中,知道它的结构将告诉你期望什么数据以及如何迭代它。

答案 4 :(得分:0)

如果数据格式不正确,您需要进行更多检查以避免错误。

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