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


Converting a nummeric array to comma separated string

我有一个这样的数组:

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

我想把它放在另一个变量中,看起来像这样:

"9,8,12"

我尝试了下面的代码,但它没有输出任何东西:

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

问题出在哪里?

最简单的方法是使用内爆:

implode(',', $participants);

在你的代码中,你应该使用这样的串联:

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

然而,我更喜欢这样的foreach:

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

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

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

使用PHP的implode函数:

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

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

$mem .= $participants[$i];

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

修复您的代码。你没有将结果分配给任何

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

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

但内爆是更好的解决方案

您的循环方法还需要删除开始(或结束)处的逗号

您的代码应该是:

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

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