将数字数组转换为逗号分隔的字符串

时间:2013-08-07 21:46:29

标签: php arrays

我有一个这样的数组:

[participants] => Array
    (
        [0] => 9
        [1] => 8
        [2] => 12
    )

我想把它放在另一个变量中,如下所示:

“9,8,12”

我尝试使用下面的代码,但它没有输出任何内容:

$mem = "";
for($i = 0; $i < count($participants); $i++)
{
    $mem.$participants[$i];
}

echo $mem;

可能是什么问题?

4 个答案:

答案 0 :(得分:2)

最简单的方法是使用implode

implode(',', $participants);

在你的代码中你应该使用这样的连接:

$mem .= $participants[$i].',';

但是,我更喜欢这样的foreach:

$mem = "";
foreach ($participants as $key => $value){
    $mem .= $value.',';
}

如果你以这种方式循环,你必须在完成后删除最后一个逗号:

$mem = rtrim($mem, ',');

答案 1 :(得分:1)

使用PHP的implode函数:

$s = implode(",", $participants);

您的代码不起作用的原因是因为您从未对$mem执行任何操作。要将字符串附加到字符串,请使用.=运算符:

$mem .= $participants[$i];

你会发现它只是粘在一起,没有逗号。

答案 2 :(得分:1)

修复你的代码。你没有把结果分配给任何东西

$mem = $mem. "," .$participants[$i];

$mem .=  "," . $participants[$i];

但内爆是一个更好的解决方案

您的循环方法也需要您在开头(或结束)删除逗号

答案 3 :(得分:1)

您的代码应为:

$mem = "";
for($i = 0; $i < count($participants); $i++)
{
   $mem .= ($i > 0) ? ",".$participants[$i] : $participants[$i];
}

echo $mem;

但正如其他人所说,使用PHP implode()