(PHP 4, PHP 5, PHP 7, PHP 8)
implode — Join array elements with a string
DescriptionAlternative signature (not supported with named arguments):
Legacy signature (deprecated as of PHP 7.4.0, removed as of PHP 8.0.0):
Parametersseparator
Optional. Defaults to an empty string.
array
The array of strings to implode.
Returns a string containing a string representation of all the array elements in the same order, with the separator string between each element.
Changelog Version Description 8.0.0 Passing theseparator
after the array
is no longer supported. 7.4.0 Passing the separator
after the array
(i.e. using the legacy signature) has been deprecated. Examples
Example #1 implode() example
<?php
$array
= ['lastname', 'email', 'phone'];
var_dump(implode(",", $array)); // string(20) "lastname,email,phone"
// Empty string when using an empty array:
var_dump(implode('hello', [])); // string(0) ""
// The separator is optional:
var_dump(implode(['a', 'b', 'c'])); // string(3) "abc"?>
Notes
houston_roadrunner at yahoo dot com ¶Note: This function is binary-safe.
16 years ago
it should be noted that an array with one or no elements works fine. for example:
<?php
$a1 = array("1","2","3");
$a2 = array("a");
$a3 = array();
echo
"a1 is: '".implode("','",$a1)."'<br>";
echo "a2 is: '".implode("','",$a2)."'<br>";
echo "a3 is: '".implode("','",$a3)."'<br>";
?>
will produce:
===========
a1 is: '1','2','3'
a2 is: 'a'
a3 is: ''
ASchmidt at Anamera dot net ¶
6 years ago
It's not obvious from the samples, if/how associative arrays are handled. The "implode" function acts on the array "values", disregarding any keys:
<?php
declare(strict_types=1);$a = array( 'one','two','three' );
$b = array( '1st' => 'four', 'five', '3rd' => 'six' );
echo
implode( ',', $a ),'/', implode( ',', $b );
?>
outputs:
one,two,three/four,five,six
omar dot ajoue at kekanto dot com ¶
12 years ago
Can also be used for building tags or complex lists, like the following:
<?php
$elements
= array('a', 'b', 'c');
echo
"<ul><li>" . implode("</li><li>", $elements) . "</li></ul>";?>
This is just an example, you can create a lot more just finding the right glue! ;)
alexey dot klimko at gmail dot com ¶
14 years ago
If you want to implode an array of booleans, you will get a strange result:
<?php
var_dump(implode('',array(true, true, false, false, true)));
?>
Output:
string(3) "111"
TRUE became "1", FALSE became nothing.
Felix Rauch ¶
8 years ago
It might be worthwhile noting that the array supplied to implode() can contain objects, provided the objects implement the __toString() method.
Example:
<?phpclass Foo
{
protected $title;
public function
__construct($title)
{
$this->title = $title;
}
public function
__toString()
{
return $this->title;
}
}$array = [
new Foo('foo'),
new Foo('bar'),
new Foo('qux')
];
echo
implode('; ', $array);
?>
will output:
foo; bar; qux
Honk der Hase ¶
5 years ago
If you want to implode an array as key-value pairs, this method comes in handy.
The third parameter is the symbol to be used between key and value.
<?php
function mapped_implode($glue, $array, $symbol = '=') {
return implode($glue, array_map(
function($k, $v) use($symbol) {
return $k . $symbol . $v;
},
array_keys($array),
array_values($array)
)
);
}$arr = [
'x'=> 5,
'y'=> 7,
'z'=> 99,
'hello' => 'World',
7 => 'Foo',
];
echo
mapped_implode(', ', $arr, ' is ');?>
Anonymous ¶
12 years ago
It may be worth noting that if you accidentally call implode on a string rather than an array, you do NOT get your string back, you get NULL:
<?php
var_dump(implode(':', 'xxxxx'));
?>
returns
NULL
This threw me for a little while.
masterandujar ¶
12 years ago
Even handier if you use the following:
<?php
$id_nums = array(1,6,12,18,24); $id_nums = implode(", ", $id_nums); $sqlquery = "Select name,email,phone from usertable where user_id IN ($id_nums)"; ?>
Be sure to escape/sanitize/use prepared statements if you get the ids from users.
Anonymous ¶
10 years ago
null values are imploded too. You can use array_filter() to sort out null values.
<?php
$ar = array("hello", null, "world");
print(implode(',', $ar)); print(implode(',', array_filter($ar, function($v){ return $v !== null; }))); ?>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4