join()
Die Funktion join() in PHP verbindet Array-Elemente zu einem String und ist ein Alias von implode().
Einführung
Die Funktion join() in PHP verbindet die Elemente eines Arrays zu einem einzelnen String und platziert dabei ein Trennzeichen (oft als „Kleber" bezeichnet) zwischen jedem Element. Sie ist ein Alias von implode() — beide Funktionen sind identisch, daher können Sie denjenigen Namen verwenden, der in Ihrem Code besser lesbar ist.
Diese Seite behandelt die Syntax von join(), beide Aufrufvarianten, das Verhalten bei gemischten Typen und verschachtelten Werten sowie häufige Fehler, die es zu vermeiden gilt.
Syntax
join(string $separator, array $array): string
join(array $array): string$separator— der Glue-String, der zwischen den einzelnen Elementen eingefügt wird. Wenn Sie ihn weglassen, wird ein leerer String""verwendet.$array— das Array, dessen Werte zusammengefügt werden. Es werden nur die Werte verwendet; Array-Schlüssel werden ignoriert.
Die Funktion gibt den zusammengefügten String zurück.
Reihenfolge der Argumente: Da
join()ein Alias vonimplode()ist, sollte die historische Reihenfolge „Trennzeichen zuerst, Array als zweites" verwendet werden. Die veraltete Form, bei der das Array zuerst stand, wurde in PHP 8.0 entfernt.
Einfaches Beispiel
Die Ausgabe lautet:
apple, banana, orangeHier verbindet join() die drei Werte mit ", " dazwischen. Das Ergebnis wird in $fruit_string gespeichert und mit echo ausgegeben.
Verbinden ohne Trennzeichen
Wenn Sie join() nur mit dem Array aufrufen, werden die Elemente direkt ohne Trennzeichen aneinandergehängt:
<?php
$parts = ["2024", "06", "21"];
echo join($parts); // 20240621
echo "\n";
echo join("-", $parts); // 2024-06-21Wie Werte konvertiert werden
Jeder Wert wird vor dem Verbinden in einen String umgewandelt, entsprechend den normalen PHP-Regeln zur String-Konvertierung:
<?php
$mixed = [1, 2.5, true, false, null, "text"];
echo join("|", $mixed);Die Ausgabe lautet:
1|2.5|1|||textBeachten Sie, dass true zu "1" wird, während false und null zu leeren Strings werden — deshalb sehen Sie aufeinanderfolgende |-Trennzeichen. Seien Sie vorsichtig beim Verbinden von Arrays, die boolesche Werte oder null enthalten können.
CSV-ähnliche oder HTML-Ausgabe erstellen
join() ist praktisch, wenn Sie eine Liste in Text umwandeln möchten — Query-Strings, CSV-Zeilen oder eine Liste von HTML-Attributen:
<?php
$row = ["Alice", "[email protected]", "Admin"];
echo join(",", $row); // Alice,[email protected],Admin
echo "\n";
$classes = ["btn", "btn-primary", "active"];
echo '<button class="' . join(" ", $classes) . '">OK</button>';Häufige Fallstricke
- Mehrdimensionale Arrays funktionieren nicht.
join()verflacht nur eine Ebene. Ein verschachteltes Array-Element wird zum wörtlichen String"Array"konvertiert und löst eine Warnung aus. Verflachen Sie die Daten zuerst. join()ist das Gegenteil vonexplode(). Verwenden Sieexplode(), um einen String wieder in ein Array aufzuteilen, undjoin()/implode(), um ihn wieder zusammenzusetzen.- Schlüssel werden ignoriert. Sowohl numerische als auch String-Schlüssel werden ignoriert; es werden nur die Werte in ihrer internen Reihenfolge verbunden.
Verwandte Funktionen
implode()— identische Funktion unter ihrem primären Namen.explode()— einen String in ein Array aufteilen (die umgekehrte Operation).str_split()— einen String in Abschnitte fester Länge aufteilen.