我需要连接一个不确定数量的字符串,我想在两个相邻的字符串之间留一个空格。像a b c d e f
一样。
此外,我不想要任何前导或尾随空格,在PHP中执行此操作的最佳方法是什么?
答案 0 :(得分:30)
你的意思是$str = implode(' ', array('a', 'b', 'c', 'd', 'e', 'f'));
?
答案 1 :(得分:4)
$strings = array( " asd " , NULL, "", " dasd ", "Dasd ", "", "", NULL );
function isValid($v){
return empty($v) || !$v ? false : true;
}
$concatenated = trim( implode( " ", array_map( "trim", array_filter( $strings, "isValid" ) ) ) );
//"asd dasd Dasd"
答案 2 :(得分:3)
function concatenate()
{
$return = array();
$numargs = func_num_args();
$arg_list = func_get_args();
for($i = 0; $i < $numargs; $i++)
{
if(empty($arg_list[$i])) continue;
$return[] = trim($arg_list[$i]);
}
return implode(' ', $return);
}
echo concatenate("Mark ", " as ", " correct");
答案 3 :(得分:3)
简单的方法是:
$string="hello" . " " . "world";
答案 4 :(得分:1)
考虑到你将所有这些字符串收集到一个数组中,一种方法可以通过一个foreach语句来完成:
$res = "";
foreach($strings as $str) {
$res.= $str." ";
}
if(strlen($res > 0))
$res = substr($res,-1);
通过这种方式,您可以控制流程以便将来进行更改。
答案 5 :(得分:1)
我只想添加到deviousdodo的答案中,如果有一个案例表明数组中有空字符串,并且您不希望这些字符串出现在连接字符串中,例如&#34 A,b ,, d ,, F&#34;那么最好使用以下内容:
$ str = implode(&#39;,&#39;,array_filter(数组(&#39; a&#39;,&#39; b&#39;,&#39;&#39;,& #39; d&#39;,&#39;&#39;,&#39; f&#39;)));