PHP, add a newline with implode

后端 未结 4 2014
忘了有多久
忘了有多久 2020-12-06 06:16

I\'m trying to add a newline \\n, in my foreach statement with implode.

My code:

$ga->requestReportData($profileId,array(\'country\'),a         


        
相关标签:
4条回答
  • 2020-12-06 06:36

    I suspect it is because you are echoing the data to the browser and it's not showing the line break as you expect. If you wrap your implode in the the <pre> tags, you can see it is working properly.

    Additionally, your arguments are backwards on your implode function, according to current documentation. However, for historical reasons, parameters can be in either order.

    $array = array('this','is','an','array');
    echo "<pre>".implode(",\n",$array)."</pre>";
    

    Output:

    this,
    is,
    an,
    array
    
    0 讨论(0)
  • 2020-12-06 06:37

    This can also work

    $array = array('one','two','three','four');
    echo implode("<br>", $array);
    

    Output:

    one
    two
    three
    four
    
    0 讨论(0)
  • 2020-12-06 06:38

    For cross-platform-compatibility use PHP_EOL instead of \n.

    Using the example from the accepted answer above:

    $array = array('this','is','another','way');
    echo "<pre>".implode(PHP_EOL, $array)."</pre>";
    

    If you're writing directly to HTML (it wouldn't work on files) there is an option of using <br> like this:

    $array = array('this','is','another','way');
    echo "<p>".implode(<br>, $array)."</p>";
    

    Both output:

    this, 
    is, 
    another, 
    way
    
    0 讨论(0)
  • 2020-12-06 06:45

    Many others claim you use the wrong order, that's only partial right, because the docs only recommend this, but you don't have to:

    implode() can, for historical reasons, accept its parameters in either order. For consistency with explode(), however, it may be less confusing to use the documented order of arguments.

    I think your problem is caused by how browsers interpret HTML. They don't care about newlines, they're like a normal space for them.

    To show these linebreaks, you can use <pre><?php echo implode($glue, $array); ?></pre>. You could also use nl2br(implode(..)) or nl2br(implode(..), true) if you're writing XHTML.

    0 讨论(0)
提交回复
热议问题