2009-09-07 13 views
8

Gibt es einen schnellen Weg (bestehende Methode) Verketten Array-Element in String mit ',' als Trennzeichen? Insbesondere bin ich auf der Suche für eine einzelne Zeile der Methode der ersetzende folgende Routine:PHP: Verketten Array-Element in String mit ',' als Trennzeichen

//given ('a','b','c'), it will return 'a,b,c' 
private static function ConstructArrayConcantenate($groupViewID) 
{ 
    $groupIDStr=''; 
    foreach ($groupViewID as $key=>$value) { 
     $groupIDStr=$groupIDStr.$value; 
     if($key!=count($groupViewID)-1) 
      $groupIDStr=$groupIDStr.','; 
    }  

    return $groupIDStr; 
} 

Antwort

35

Das ist genau das, was das PHP implode() fu nction ist für.

Versuchen

$groupIDStr = implode(',', $groupViewID); 
+0

Ausgezeichnet. Gibt es eine Variante, die "implodiert", aber bei $ groupViewID [3] beginnt und bis zum Ende geht? Vielen Dank! – Olie

+1

Was Sie tun müssen, ist ein neues Array zu erstellen, das alles von '$ groupViewID [3]' bis zum Ende enthält, und das implodieren. Im obigen Beispiel können Sie einfach '$ groupViewID' durch' array_slice ($ groupViewID, 3) 'ersetzen. – Artelius

+0

Genau das habe ich gesucht; Vielen Dank! :) – Olie

6

implode()

$a = array('a','b','c'); 
echo implode(",", $a); // a,b,c 
6
$arr = array('a','b','c'); 
$str = join(',',$arr); 

beitreten ein Alias ​​für implodieren ist, aber ich es vorziehen, da es mehr Sinn, die aus einem Java oder Perl Hintergrund (und andere) macht.

+0

Obwohl Join auch korrekt ist, denke ich, dass die meisten PHP-Entwickler es gewohnt sind, Implod zu sehen. :) – carl

+1

@Carl Vondrick - ein Grund mehr, Join zu verwenden() IMO, aber ich kann verstehen, dass PHP-Entwickler lieber implode() verwenden würden, wie es * klingt * cooler. – karim79

1

implode() -Funktion ist der beste Weg, dies zu tun. Zusätzlich für die Erschütterung des in Verbindung stehenden Themas können Sie explode() Funktion verwenden, um ein Array von einem Text wie folgend herzustellen:

$ text = '18: 09: 00 '; $ t_array = explodieren (':', $ text);

1

Sie können implode() sogar mit leeren Delimeter: implode(' ', $value); ziemlich praktisch.