Преобразование строк в массивы и наоборот

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>";
                        

Такой способ вполне рабочий, но для большинства языков программирования максимально неэффективный. Дело в том, что конкатенация и интерполяция порождают новую строчку вместо старой и подобная ситуация повторяется на каждой итерации. Причём строка становится все больше и больше. Копирование строк приводит к серьёзному расходу памяти и может влиять на производительность.