Добавить в корзинуПозвонить
Найти в Дзене
WebTechnology

Разбиение и объединение строк в PHP

Иногда бывает нужно разбить одну строку на несколько строк и отправить их в массив. Очень часто такое бывает нужно, когда мы получили набор входных данных в виде одной строки, разделённых, например, пробелами. Более редко (по крайней мере, в моей практике), но тоже используется обратная операция - объединение строк в PHP. Давайте обсудим эти две задачи более подробно. Для разбиения строки на элементы используется функция explode(), которая принимает два параметра: строку, которую необходимо разбить и разделитель. Рассмотрим функцию explode()сразу на примере: <?php
  $arr = explode("/", "Lexus/Smirnov/40");
  print_r($arr);
?> В данном примере, мы создаём массив, элементами которого становятся "Lexus", "Smirnov", "40". То есть мы, учитывая разделитель "/", разбили эту строку на несколько и записали их в массив. Существует так же и операция разбиение строки на элементы и мгновенная запись их в переменные: <?php
  list($car, $owner, $age) = explode("/", "Lexus/Smirnov/40");
  echo $car."

Иногда бывает нужно разбить одну строку на несколько строк и отправить их в массив. Очень часто такое бывает нужно, когда мы получили набор входных данных в виде одной строки, разделённых, например, пробелами. Более редко (по крайней мере, в моей практике), но тоже используется обратная операция - объединение строк в PHP. Давайте обсудим эти две задачи более подробно.

Для разбиения строки на элементы используется функция explode(), которая принимает два параметра: строку, которую необходимо разбить и разделитель. Рассмотрим функцию explode()сразу на примере:

<?php
  $arr = explode("/", "Lexus/Smirnov/40");
  print_r($arr);
?>

В данном примере, мы создаём массив, элементами которого становятся "Lexus", "Smirnov", "40". То есть мы, учитывая разделитель "/", разбили эту строку на несколько и записали их в массив. Существует так же и операция разбиение строки на элементы и мгновенная запись их в переменные:

<?php
  list($car, $owner, $age) = explode("/", "Lexus/Smirnov/40");
  echo $car."<br />";
  echo $owner."<br />";
  echo $age."<br />";
?>

То есть в данном примере, мы создали три переменные, в каждую из которых записали соответствующее значение.

Теперь о применении данной функции. В своё время я реализовывал задачу поиска по сайту. И мне нужно было сформировать из GET-запроса, полученного из формы, запрос к базе данных, чтобы извлечь оттуда подходящие записи. Проблема была в том, что ведь могут искать несколько слов сразу, например, "создать сайт быстро". И нужно вывести все материалы со словами "создать", либо "сайт", либо "быстро". И мне приходилось использовать функцию explode(), а в качестве разделителя брался пробел. А уже затем я формировал запрос к базе данных (разумеется, с количеством OR зависящем от количества слов, либо AND, если пользователь потребовал вхождение всех слов) и извлекал подходящие записи из таблицы базы данных. Вообще, задача была на порядок тяжелее, но тут я привёл Вам её кусок, чтобы Вы поняли, что бывают ситуации, когда без этой функции очень трудно работать.

Для объединения строк в PHP имеется функция implode(), которая принимает тоже два параметра: разделитель и массив:

<?php
  $arr = array(15, 10, 1985);
  $str = implode(".", $arr);
  echo $str;
?>

В результате получится строка: "15.10.1985". Думаю, что здесь всё прозрачно.

Скажу честно, я не помню, когда эту функцию использовал (может быть, вообще не использовал), но применение для неё определённо имеется. Например, первое, что приходит в голову - это получить несколько значений, соответствующих, дню рождения пользователя. И чтобы вывести его день рождения в любом формате, можно с помощью функции implode() тут же преобразовать полученные значения в строку (с любым разделителем) и дальше уже выводить только строку, а не соединять каждый раз все значения.

Вот и всё, что касается разбиения и объединения строк в PHP.