0

我有一个这样的数组:

[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

4 回答 4

2

最简单的方法是使用implode

implode(',', $participants);

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

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

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

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

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

$mem = rtrim($mem, ',');
于 2013-08-07T21:47:20.150 回答
1

使用 PHP 的implode函数:

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

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

$mem .= $participants[$i];

你会看到它只是将所有东西粘合在一起,没有逗号。

于 2013-08-07T21:48:05.567 回答
1

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

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

或者

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

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

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

于 2013-08-07T21:50:11.193 回答
1

您的代码应该是:

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

echo $mem;

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

于 2013-08-07T21:56:09.807 回答