function implode_r($glue,$arr){
$ret_str = "";
foreach($arr as $a){
$ret_str .= (is_array($a)) ? implode_r($glue,$a) : "," . $a;
}
return $ret_str;
}
implode
(PHP 4, PHP 5)
implode — 配列要素を文字列により連結する
説明
string implode
( string
$glue
, array $pieces
)
string implode
( array
$pieces
)
配列の要素を glue 文字列で連結します。
注意:
implode()は、歴史的な理由により、引数をどちら の順番でも受けつけることが可能です。しかし、 explode() との統一性の観点からは、 ドキュメントに記述された引数の順番を使用する方が混乱が少なくなるでしょう。
パラメータ
-
glue -
デフォルトは空文字列です。
-
pieces -
連結したい文字列の配列。
返り値
すべての配列要素の順序を変えずに、各要素間に
glue 文字列をはさんで 1 つの文字列にして返します。
変更履歴
| バージョン | 説明 |
|---|---|
| 4.3.0 |
glue パラメータがオプションとなりました。
|
例
例1 implode() の例
<?php
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
// 空の配列を使うと空文字列となります
var_dump(implode('hello', array())); // string(0) ""
?>
注意
注意: この関数はバイナリデータに対応しています。
参考
- explode() - 文字列を文字列により分割する
- preg_split() - 正規表現で文字列を分割する
- http_build_query() - URL エンコードされたクエリ文字列を生成する
jento ¶
3 months ago
houston_roadrunner at yahoo dot com ¶
4 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: ''
php.net {at} nr78 {dot} net ¶
8 years ago
Also quite handy in INSERT statements:
<?php
// array containing data
$array = array(
"name" => "John",
"surname" => "Doe",
"email" => "j.doe@intelligence.gov"
);
// build query...
$sql = "INSERT INTO table";
// implode keys of $array...
$sql .= " (`".implode("`, `", array_keys($array))."`)";
// implode values of $array...
$sql .= " VALUES ('".implode("', '", $array)."') ";
// execute query...
$result = mysql_query($sql) or die(mysql_error());
?>
masterandujar ¶
9 months 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)";
// $sqlquery becomes "Select name,email,phone from usertable where user_id IN (1,6,12,18,24)"
?>
omar dot ajoue at kekanto dot com ¶
3 months 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 ¶
1 year 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.
Anonymous ¶
1 month ago
/*Defining the associative array to keep the name of
toppings checked*/
$arrayOfMeatToppingsSelected = array();
$arrayOfVegetablesToppingsSelected = array();
//Imploding of the names of the toppings checked
$implodedArrayOfMeatToppingsSelected = implode(', ', $arrayOfMeatToppingsSelected);
$implodedArrayOfVegetablesToppingsSelected = implode(', ', $arrayOfVegetablesToppingsSelected);
<form action="orderConfirmation.php" method="post">
<input type="hidden" name="firstName" value="<?php echo $firstName; ?>" />
<input type="hidden" name="lastName" value="<?php echo $lastName; ?>" />
<input type="hidden" name="address" value="<?php echo $address; ?>" />
<input type="hidden" name="city" value="<?php echo $city; ?>" />
<input type="hidden" name="province" value="<?php echo $province; ?>" />
<input type="hidden" name="postalCode" value="<?php echo $postalCode; ?>" />
<input type="hidden" name="telephone" value="<?php echo $telephone; ?>" />
<input type="hidden" name="email" value="<?php echo $email; ?>" />
<input type="hidden" name="numberPizza" value="<?php echo $numberPizza; ?>" />
<input type="hidden" name="sizePizza" value="<?php echo $sizePizza; ?>" />
<input type="hidden" name="crustTypePizza" value="<?php echo $crustTypePizza; ?>" />
<input type="hidden" name="toppings" value="<?php echo $checkBoxCount; ?>" />
<input type="hidden" name="extrasPizza" value="<?php echo $extrasPrice; ?>" />
<input type="hidden" name="price" value="<?php echo $price; ?>" />
<input type="hidden" name="priceTax" value="<?php echo $priceTax; ?>" />
<input type="hidden" name="finalPrice" value="<?php echo $finalPrice; ?>" />
<input type="hidden" name="deletion" value="<?php echo "1"; ?>" />
<input type="hidden" name="implodedArrayOfMeatToppingsSelected"
value="<?php echo $implodedArrayOfMeatToppingsSelected; ?>" />
<input type="hidden" name="implodedArrayOfVegetablesToppingsSelected"
value="<?php echo $implodedArrayOfVegetablesToppingsSelected; ?>" />
<input type="submit" value="Submit" />
</form>
Anonymous ¶
3 months 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.
Cedric at isoca dot com ¶
10 years ago
Implode with an unset array will made a warning and fail, but is ok with an empty array.
So if you don't trust the content of the array, allways initialize it before :
$param = array();
[...]
echo implode('&', $param);
