implode

(PHP 4, PHP 5)

implodeСвързва елементи на масив с низ

Описание

string implode ( string $glue , array $pieces )
string implode ( array $pieces )

Свързва елементи на масив последством слепващ низ.

Забележка: Функцията implode() от исторически съображения може да приема параметрите си в произволен ред. За съвместимост с explode() обаче, може да е по-малко объркващо да се използва реда указан в документацията.

Параметри

glue

Стойността му по подразбиране е празен низ. Това не е препоръчителната употреба на implode(). Препоръчваме винаги да се използват и двата, за съвместимост с по-стари версии.

pieces

Масивът от низове, който ще се свързва.

Връщани стойности

Връща низ съдържащ низово представяне на всички елементи на масива в реда, в който са дефинирани със слепващ низ между елементите.

Дневник на промените

Версия Описание
4.3.0 Параметърът glue е незадължителен.

Примери

Example #1 Пример за implode()

<?php

$array 
= array('lastname''email''phone');
$comma_separated implode(","$array);

echo 
$comma_separated// lastname,email,phone

?>

Бележки

Забележка: Тази функция е двоично сигурна (binary-safe).

Вж. също

  • explode() - Разделя низ на поднизове
  • split() - Split string into array by regular expression

add a note add a note

User Contributed Notes 7 notes

up
61
houston_roadrunner at yahoo dot com
5 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: ''
up
24
omar dot ajoue at kekanto dot com
1 year 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! ;)
up
22
php.net {at} nr78 {dot} net
9 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());

?>
up
1
Jacques Amar
8 days ago
Safe way to pass as parameters in IN

<?php
$id_nums
= array(1,6,12,18,24);
$p_types = '';
$qs    = array();
foreach (
$id_nums as $id) {
   
$qs[]   = '?';
   
$p_types .= 'i'; // or whatever type
}
$nums_list = implode(',', $qs);
            
$sqlquery = "Select name,email,phone from usertable where user_id IN ($nums_list)";

$stmt = $dbh->stmt_init();
$stmt->prepare($sqlquery);
// later on, instead of bind:
$parms_array = array_merge(array($p_types), $id_nums);
call_user_func_array(array($stmt,'bind_param'), $parms_array );

// $sqlquery becomes "Select name,email,phone from usertable where user_id IN (?,?,?,?,?)"
?>
up
10
alexey dot klimko at gmail dot com
2 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.
up
5
Anonymous
1 year 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.
up
0
masterandujar
1 year 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)"
?>

Be sure to escape/sanitize/use prepared statements if you get the ids from users.
To Top