implode

(PHP 4, PHP 5)

implodeDizi elemanlarını birleştirip bir dizge elde eder

Açıklama

string implode ( string $yapıştırıcı , array $parçalar )
string implode ( array $parçalar )

Dizi elemanlarını bir yapıştırıcı ile birleştirir.

Bilginize:

implode() işlevi geçmişle ilgili sorunlar yüzünden değiştirgelerini herhangi bir sırada kabul edebilir. explode() ile uyumluluk adına değiştirgeler, bu belgede belirtilen sırayla belirtilirse daha iyi olur.

Değiştirgeler

yapıştırıcı

Öntanımlı olarak boş bir dizgedir. Bu bakımdan işlevin bu değiştirge belirtilmeden kullanılması tercih edilmez.

parçalar

Dizge haline getirilecek dizi.

Dönen Değerler

Her eleman arasına yapıştırıcı dizge yerleştirilmiş olarak dizi elemanlarını aynı sırada içeren bir dizge döner.

Sürüm Bilgisi

Sürüm: Açıklama
4.3.0 yapıştırıcı değiştirgesi isteğe bağlı yapıldı.

Örnekler

Örnek 1 - implode() örneği

<?php

$dizi 
= array('soyadı''eposta''telefon');
$virgül_ayraçlı implode(","$array);

echo 
$virgül_ayraçlı// soyadı,eposta,telefon

?>

Notlar

Bilginize: Bu işlev ikil dosyalarla çalışırken dosya içeriğini değiştirmez.

Ayrıca Bakınız

  • explode() - Bir dizgeyi bir ayraca göre bölüp bir dizi haline getirir
  • split() - Belirtilen dizgeyi düzenli ifadeye göre dizi elemanlarına böler

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