我有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
如何实现期望的输出?
普通感染应该可以正常工作:
$string = $string1 . "," . $string2 . "," . $string3;
或更紧凑:
$string = "{$string1},{$string2},{$string3}";
您可以使用implode()
,但需要先使用explode(',', $string1);
。不过,根据您的描述,简单的串联就足够了。
编辑
一开始连逗号都用不起。
然后删除它:
if( $string[0] === ',' ) {
$string = substr($string,1);
}
$string=$string1.",".$string2.",".$string3;
$del = ',';
$res = array_merge(explode ( $del , $string1 ),explode ( $del , $string2 ),explode ( $del , $string3 ));
var_dump(implode($del,$res));
虽然答案已经给出,但我认为这个也非常适合您的所有要求如果开头、结尾或中间有逗号,它就会起作用。我希望如此:)
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);
}