W3docs

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.

Базовый пример

php— editable, runs on the server

Результат:

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() — разбить строку на фрагменты фиксированной длины.

Практика

Практика
Какова основная функция implode() в PHP?
Какова основная функция implode() в PHP?
Was this page helpful?