array_join

Директива `array_join` объединяет элементы переменной типа массива в одну строку, используя заданный разделитель.

Синтаксисarray_join [to=$target_var];
По умолчаниюnone
Контекстhttp, server, location, if in server, if in location
Аргументы2-3

Описание

Директива array_join в NGINX предназначена для объединения элементов переменной-массива в одну строку, разделённую определяемыми пользователем разделителями. Эта директива является частью модуля 'Array-typed variables for NGINX', который позволяет использовать структуры данных, похожие на массивы, в конфигурациях NGINX. Она позволяет брать переменную-массив и создавать составную строку, которая может использоваться в дальнейшей обработке или выводе.

Чтобы использовать array_join, необходимо указать символ или строку-разделитель, который будет вставлен между элементами массива. Опционально можно указать целевую переменную для хранения результирующей строки. При вызове директивы она проходит по элементам указанной переменной-массива и конкатенирует их в одну строку с применением заданного разделителя.

Эта директива особенно полезна в сценариях, где нужно сформировать SQL-запрос или другие строковые условия из значений списка. Например, можно собрать список имён файлов или других идентификаторов в массив, а затем с помощью array_join построить условие для базы данных или аналогичную выходную строку. Обратите внимание, что директива должна располагаться в подходящем контексте, таком как блок http, server или location, и она также поддерживает вложенное использование внутри условных блоков.

Пример конфига

location /foo {
    array_split ',' $arg_files to=$array;
    array_join ' or ' $array to=$sql_condition;
    echo "select * from files where $sql_condition";
}

Убедитесь, что переменная массива инициализирована и заполнена перед использованием array_join; в противном случае это приведёт к пустой строке.

Использование array_join непосредственно в контекстах, где переменная массива не определена, приведёт к ошибкам конфигурации.

Учтите размер массива: очень большие массивы могут порождать чрезмерно длинные объединённые строки, что потенциально может вызывать проблемы с производительностью.

← Ко всем директивам