PHP умеет преобразовывать данные из строки в массив и наоборот, для этого в PHP есть функция implode и explode.
implode - формирует строку из массива.
explode - формирует массив из строки.
Использование функции implode:
<?php
$arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
$string = implode(", ", $arr);
echo $string;
?>
Отображение в браузере:
PHP, HTML, CSS
Использование функции explode:
<?php
$string = "PHP, HTML, CSS";
$arr = explode(", ", $string);
print_r($arr);
?>
Отображение в браузере:
Array ( [0] => PHP [1] => HTML [2] => CSS )
Генерация строк в циклах — задача, часто возникающая на практике. Типичный пример в вебе — функция-хелпер, помогающая генерировать HTML-списки в шаблонах. Она принимает на вход коллекцию элементов и возвращает список из них:
<?php
$coll = ['milk', 'butter', 'eggs', 'bread'];
buildList($coll);
// <ul><li>milk</li><li>butter</li><li>eggs</li><li>bread</li></ul>
Самый примитивный алгоритм, который приходит в голову. Пройтись циклом по элементам коллекции и дописать в
результирующую строку очередной элемент li. В начале и конце добавить ul и вернуть строчку наружу.
<?php
$result = '';
foreach ($coll as $item) {
$result .= "<li>{$item}</li>";
// либо так
// $result = "{$result}<li>{$item}</li>";
}
$result = "<ul>{$result}</ul>";
Такой способ вполне рабочий, но для большинства языков программирования максимально неэффективный. Дело в том, что конкатенация и интерполяция порождают новую строчку вместо старой и подобная ситуация повторяется на каждой итерации. Причём строка становится все больше и больше. Копирование строк приводит к серьёзному расходу памяти и может влиять на производительность.