在PHP中用空格连接字符串的最佳方法

在PHP中用空格连接字符串的最佳方法,php,string,concatenation,Php,String,Concatenation,我需要连接数量不确定的字符串,并且我希望在两个相邻字符串之间有一个空格。像这样abcdef 另外,我不需要任何前导或尾随空格,在PHP中这样做的最佳方式是什么?您的意思是$str=introde(“”,array('a','b','c','d','e','f')?考虑到您已将所有这些字符串收集到一个数组中,一种方法是通过每句话来实现,如: $res = ""; foreach($strings as $str) { $res.= $str." "; } if(strlen($res &g

我需要连接数量不确定的字符串,并且我希望在两个相邻字符串之间有一个空格。像这样
abcdef


另外,我不需要任何前导或尾随空格,在PHP中这样做的最佳方式是什么?

您的意思是
$str=introde(“”,array('a','b','c','d','e','f')

考虑到您已将所有这些字符串收集到一个数组中,一种方法是通过每句话来实现,如:

$res = "";
foreach($strings as $str) {
   $res.= $str." ";
}

if(strlen($res > 0))
    $res = substr($res,-1);
通过这种方式,您可以控制未来更改的过程。

函数concatenate()
$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"
{ $return=array(); $numargs=func_num_args(); $arg_list=func_get_args(); 对于($i=0;$i<$numargs;$i++) { 如果(空($arg_list[$i])继续; $return[]=trim($arg_list[$i]); } 返回内爆(“”,$return); } 回声连接(“标记”、“作为”、“正确”);
简单的方法是:

$string="hello" . " " . "world";

我只想在DeviceDodo的回答中补充一点,即如果数组中存在空字符串,并且您不希望这些字符串出现在串联字符串中,例如“a、b、d、f”,那么最好使用以下内容:


$str=内爆(',',数组_过滤器(数组('a','b','d','f'))

如何存储这些字符串?它们在一个数组中吗?或者在单独的变量中?它们是单独的变量,如果vriable未设置或是空字符串,我不希望它包含在连接的字符串中。@最新的变量是如何生成的?你不能把值放在一个数组中而不是自由变量吗?1-为了标题中的“最佳”,你只需在迭代数据库行时构建字符串数组,并且只有当变量不为空时才将其放在数组中(然后你可以进行内爆)。如果你不确定怎么做,就在这里添加代码。如果你有
内爆()
,听起来有些过分。是的,我知道,但我通常喜欢打开并控制一些东西,这样当我面对未知的数据类型时,我可以随时自由地进行更改,因为现在它是一个字符串数组,但你永远不知道在开发过程中会发生什么,所以我喜欢那种自由。我总是有时间将其更改为一个简单的内爆/连接,因为我对内容有把握。您的解决方案(使用
foreach
)假设字符串在一个数组中。使用
内爆
也会假定字符串在一个数组中。我看不到这里的自由,我只看到了一堆不必要的行,它们降低了可读性。这给了我自由,让我拥有一个字符串,任何对象,并改变循环中语句的内部,就是这样。这只是为了原型问题,当然,当你确定,你做对了,所以如果它是一个字符串数组,很明显,你会选择一个更花哨,消耗更少的解决方案,比如内爆或连接
$string="hello" . " " . "world";