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 — Rassemble les éléments d'un tableau en une chaîne
Description
$glue
, array $pieces
)$pieces
)Rassemble les éléments d'un tableau en une chaîne.
Note:
implode() peut, pour des raisons historiques, accepter les paramètres dans un sens ou dans l'autre. Pour des raisons de cohérence avec explode(), toutefois, il est préférable d'utiliser l'ordre des arguments tels que documenté.
Liste de paramètres
-
glue -
Par défaut, une chaîne vide.
-
pieces -
Le tableau de chaînes à rassembler.
Valeurs de retour
Retourne une chaîne contenant la représentation en chaîne de caractères
de tous les éléments du tableau pieces, dans le
même ordre, avec la chaîne glue, placée entre
deux éléments.
Historique
| Version | Description |
|---|---|
| 4.3.0 |
Le paramètre glue devient optionnel.
|
Exemples
Exemple #1 Exemple avec implode()
<?php
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
// Chaîne vide lors de l'emploi d'un tableau vide :
var_dump(implode('hello', array())); // string(0) ""
?>
Notes
Note: Cette fonction gère les chaînes binaires.
Voir aussi
- explode() - Coupe une chaîne en segments
- preg_split() - Éclate une chaîne par expression rationnelle
- http_build_query() - Génère une chaîne de requête en encodage URL
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: ''
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());
?>
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)"
?>
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! ;)
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.
/*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>
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.
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);
