I'm trying to add a newline \n
, in my foreach statement with implode.
My code:
$ga->requestReportData($profileId,array('country'),array('visits'));
$array = array();
foreach($ga->getResults() as $result){
$array[] = "['".$result->getcountry()."', ".$result->getVisits()."]";
}
echo implode(",\n", $array);
I only get a comma and a space between my results. I want a comma and a newline.
I am trying to get something like this:
['Country', 'number'],
['Country', 'number'],
['Country', 'number']
However I I get this:
['Country', 'number'], ['Country', 'number'], ['Country', 'number']
Why does my \n not cause a newline?
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
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
This can also work
$array = array('one','two','three','four');
echo implode("<br>", $array);
Output:
one
two
three
four
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With