我有一个这样的数组:
[participants] => Array
(
[0] => 9
[1] => 8
[2] => 12
)
我想把它放在另一个变量中,如下所示:
“9,8,12”
我尝试使用下面的代码,但它没有输出任何内容:
$mem = "";
for($i = 0; $i < count($participants); $i++)
{
$mem.$participants[$i];
}
echo $mem;
可能是什么问题?
答案 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()