连接用逗号分隔的字符串,但如果字符串为空,则逗号不应该在开头

时间:2013-12-07 11:32:01

标签: php

我有3个字符串:

$string1=1,2,3,4,5,6
$string2=7,8,9
$string3=11,12

我想连接上面用逗号分隔的字符串。

期望的输出:

$string=1,2,3,4,5,6,7,8,9,11,12

因为首先是字符串我不能使用IMPLODE()我也不能使用(.)连接运算符,因为我希望字符串用(,)分隔,即逗号。

$string = $string1 . "," . $string2 . "," . $string3;

感谢大家,我得到了解决方案,但上述任何字符串都可以为空。这意味着如果$ string 1为空,那么我将拥有

$string =,7,8,9,11,12

但无论如何我一开始就买不起逗号

比输出

$string =7,8,9,11,12

如何实现所需的输出?

4 个答案:

答案 0 :(得分:6)

平原连接应该可以正常工作:

$string = $string1 . "," . $string2 . "," . $string3;

或更紧凑:

$string = "{$string1},{$string2},{$string3}";

可以使用implode(),但您需要先explode(',', $string1);。不过,根据你的描述,简单的连接是完全足够的。

修改

  

在开头不能用逗号。

然后删除它:

if( $string[0] === ',' ) {
   $string = substr($string,1);
}

答案 1 :(得分:2)

$string=$string1.",".$string2.",".$string3;

答案 2 :(得分:2)

$del = ',';
$res = array_merge(explode ( $del , $string1 ),explode ( $del , $string2 ),explode ( $del , $string3 )); 
var_dump(implode($del,$res));

答案 3 :(得分:1)

虽然已经给出了答案,但我认为这个答案也非常适合您的所有要求。如果在开始,结束或之间有逗号,它将起作用。我希望如此: )

public function verywell()
{
    $string1='1,2,3,4,5,6,,,,,,,';
    $string2=',,,,,,,,7,,9';
    $string3='10,11,,,,,,,,12';
    $arr1=  explode(',', $string1);
    $arr2=  explode(',', $string2);
    $arr3=  explode(',', $string3);
    $val=  array_merge($arr1,$arr2,$arr3);
    foreach($val as $key=>$value)
    {
        if($value=='')
        {
            unset($val[$key]);

        }
    }
       echo implode(',',$val);
}