PHP "Array to String" (Examples of How to Use the implode Function)

Php Array To String

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):

  1. implode( string $glue , array $pieces ) – The glue is used to combine the array pieces.
  2. 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!