In PHP, the implode() method joins array elements and outputs them as a single string. This is useful when you need to create one string out of a set of array values.
The function can be invoked in two ways (with or without the glue string):
- implode( string $glue , array $pieces ) – The glue is used to combine the array pieces.
- implode( array $pieces ) – No glue is used, so the pieces will be concatenated together.
We’ll go through examples of both, as well as how to go from a string to an array, below.
Example: Using implode to Go From an Array to a String
To output an array as a string, where each array value is separated by a comma and a space, you would do the following:
$list = array( 'foo', 'bar', 'baz' ); echo implode( ", ", $list ); // outputs: foo, bar, baz
Without the previous glue string comma, this would be the result:
$list = array( 'foo', 'bar', 'baz' ); echo implode( $list ); // outputs: foobarbaz
It’s Worth Knowing About print_r, var_dump, and json_encode
Other functions that prove useful for looking at the values of arrays are print_r and var_dump. These two functions can be extremely useful when you are debugging a program and want to see the output of an array (or any variable).
Also, json_encode will take your array data and output it as a string in JSON-encoded format.
Bonus: How To Go From a String to an Array (The Reverse of Implode)
The reverse action — going from a string to an array — can be done easily with explode, or by using the preg_split function, which takes a regular expression.
Using explode
You guessed it: explode is the opposite of implode and uses a delimiter to decide where to break up a string. It is usually the simplest way to break up a string into an array.
$keywords = explode( ', ', 'foo, bar, baz' ); print_r( $keywords );
The above would result in the output below:
( [0] => foo [1] => bar [2] => baz )
Using preg_split
If your delimiter is REALLY complicated, it might make sense to use a regular expression to define it. If this is the case, you can use preg_split.
$keywords = preg_split( "/[,]+/", 'foo,bar,baz' ); print_r( $keywords );
This would also output the following:
( [0] => foo [1] => bar [2] => baz )
Okay, that is enough PHP string manipulation for now. Just don’t be afraid to implode!
