join()
Функция join() в PHP объединяет элементы массива в строку. Она является псевдонимом функции implode().
Введение
Функция join() в PHP объединяет элементы массива в единую строку, помещая разделитель (часто называемый «клеем») между каждым элементом. Она является псевдонимом implode() — обе функции идентичны, поэтому вы можете использовать то имя, которое лучше читается в вашем коде.
На этой странице рассматривается синтаксис join(), оба способа её вызова, поведение со значениями смешанных типов и вложенными значениями, а также распространённые ошибки, которых следует избегать.
Синтаксис
join(string $separator, array $array): string
join(array $array): string$separator— строка-разделитель, вставляемая между каждым элементом. Если не указан, используется пустая строка"".$array— массив, значения которого объединяются. Используются только значения; ключи массива игнорируются.
Функция возвращает объединённую строку.
Порядок аргументов: Поскольку
join()является псевдонимомimplode(), следует использовать исторический порядок «разделитель первым, массив вторым». Устаревшая форма, в которой массив шёл первым, была удалена в PHP 8.0.
Базовый пример
Результат:
apple, banana, orangeЗдесь join() склеивает три значения с разделителем ", " между ними. Результат сохраняется в $fruit_string и выводится с помощью echo.
Объединение без разделителя
Если вызвать join() только с массивом, элементы будут объединены непосредственно, без чего-либо между ними:
<?php
$parts = ["2024", "06", "21"];
echo join($parts); // 20240621
echo "\n";
echo join("-", $parts); // 2024-06-21Преобразование значений
Каждое значение приводится к строке перед объединением по стандартным правилам преобразования строк в PHP:
<?php
$mixed = [1, 2.5, true, false, null, "text"];
echo join("|", $mixed);Результат:
1|2.5|1|||textОбратите внимание: true становится "1", тогда как false и null становятся пустыми строками — именно поэтому вы видите идущие подряд разделители |. Будьте внимательны при объединении массивов, которые могут содержать boolean-значения или null.
Формирование CSV-строк или HTML-вывода
join() удобна всякий раз, когда нужно преобразовать список в текст — строки запросов, строки CSV или список HTML-атрибутов:
<?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>';Распространённые ловушки
- Многомерные массивы не работают.
join()выравнивает только один уровень. Элемент-массив преобразуется в буквальную строку"Array"и вызывает предупреждение. Сначала выровняйте данные. join()— обратная операция кexplode(). Используйтеexplode(), чтобы разбить строку обратно на массив, иjoin()/implode(), чтобы снова собрать её.- Ключи отбрасываются. Как числовые, так и строковые ключи игнорируются; объединяются только значения в их внутреннем порядке.
Связанные функции
implode()— идентичная функция под основным именем.explode()— разбить строку на массив (обратная операция).str_split()— разбить строку на фрагменты фиксированной длины.