Best Way To Concatenate Strings In PHP With Spaces In Between

后端 未结 6 2156
抹茶落季
抹茶落季 2021-02-19 22:07

I need to concatenate an indeterminate number of strings, and I would like a space in between two adjoining strings. Like so a b c d e f.

Also I do not want

相关标签:
6条回答
  • 2021-02-19 22:46
    $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"
    
    0 讨论(0)
  • 2021-02-19 22:46

    I just want to add to deviousdodo's answer that if there is a case that there are empty strings in the array and you don't want these to appear in the concatenated string, such as "a,b,,d,,f" then it will better to use the following:

    $str = implode(',', array_filter(array('a', 'b', '', 'd', '', 'f')));

    0 讨论(0)
  • 2021-02-19 22:54

    You mean $str = implode(' ', array('a', 'b', 'c', 'd', 'e', 'f'));?

    0 讨论(0)
  • 2021-02-19 23:08

    Simple way is:

    $string="hello" . " " . "world";
    
    0 讨论(0)
  • 2021-02-19 23:09

    considering that you have all these strings collected into an array, a way to do it could be trough a foreach sentence like:

    $res = "";
    foreach($strings as $str) {
       $res.= $str." ";
    }
    
    if(strlen($res > 0))
        $res = substr($res,-1);
    

    in this way you can have control over the process for future changes.

    0 讨论(0)
  • 2021-02-19 23:11
    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");
    
    0 讨论(0)
提交回复
热议问题