如何轻松删除数组中的最后一个逗号?

Bas*_*ien 6 php arrays string

假设我有这个:

$array = array("john" => "doe", "foe" => "bar", "oh" => "yeah");

foreach($array as $i=>$k)
{
echo $i.'-'.$k.',';
}
Run Code Online (Sandbox Code Playgroud)

回声 "john-doe,foe-bar,oh-yeah,"

我怎么摆脱最后一个逗号?

cod*_*ict 19

或者,您可以使用以下rtrim功能:

$result = '';
foreach($array as $i=>$k) {
    $result .= $i.'-'.$k.',';
}
$result = rtrim($result,',');
echo $result;
Run Code Online (Sandbox Code Playgroud)

  • 是的,忘记了修剪.+1 (3认同)

jed*_*der 10

我不喜欢以前的所有食谱.

Php不是C,并且有更高级别的方法来处理这个特殊问题.

我将从你有这样一个数组的点开始:

$array = array('john-doe', 'foe-bar', 'oh-yeah');
Run Code Online (Sandbox Code Playgroud)

您可以使用循环或array_map()函数从初始数组构建此类数组.请注意,我使用的是单引号字符串.如果您没有需要替换的变量名称,那么这是一个微优化.

现在你需要从这个数组生成一个CSV字符串,它可以这样做:

echo implode(',', $array);
Run Code Online (Sandbox Code Playgroud)


Jim*_* W. 7

一种方法是使用 substr

$array = array("john" => "doe", "foe" => "bar", "oh" => "yeah");

$output = "";
foreach($array as $i=>$k)
{
    $output .= $i.'-'.$k.',';
}

$output = substr($output, 0, -1);

echo $output;
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用 implode

$array = array("john" => "doe", "foe" => "bar", "oh" => "yeah");

$output = array();
foreach($array as $i=>$k)
{
    $output[] = $i.'-'.$k;
}

echo implode(',', $output);
Run Code Online (Sandbox Code Playgroud)