Лучший способ конкатенации строк в PHP с пробелами
Мне нужно объединить неопределенное количество строк, и я хотел бы пространство между двумя соседними строками. Вот так!--0-->.
также я не хочу никаких ведущих или конечных пробелов, каков наилучший способ сделать это в PHP?
6 ответов
$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"
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");
Я просто хочу добавить к ответу deviousdodo, что если есть случай, когда в массиве есть пустые строки, и вы не хотите, чтобы они появлялись в конкатенированной строке, такой как" a,b,,d,,f", то лучше использовать следующее:
$str = implode (',', array_filter (array ('a', 'b', ", 'd', ", 'f')));
учитывая, что у вас есть все эти строки, собранные в массив, способ сделать это может быть через предложение foreach, например:
$res = "";
foreach($strings as $str) {
$res.= $str." ";
}
if(strlen($res > 0))
$res = substr($res,-1);
таким образом, вы можете контролировать процесс будущих изменений.