我有一个这样的数组:
[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()