explode() и implode() PHP
Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали, что такое функции в php. В данной короткой статье я бы хотел поговорить о двух наиболее часто используемых функциях при программировании сценариев на PHP. Это функции explode() и implode(). Функция explode() служит для разбиения строки на части, причем разбиение идёт по определенному разделителю.
Функция implode() служит для объединения строк в одну, вставляя между ними разделитель. Синтаксис у функции explode() следующий:
list explode(string separator, string str1, int limit)
В данном случае мы передаём строку str1, функция ищет в данной строке разделитель separator, и по нему разбивает строку. Также, если указан параметр limit, то строка будет разбита на limit слов. Чтобы было понятнее давайте на примере рассмотрим данную функцию:
<?php $stroka = "Alex|Ivan|Olesya|Gennadii|Tanya"; $names = explode("|", $stroka); foreach ($names as $name) echo "$name "; // в данном случае будут выведены все имена $newNames = explode("|", $stroka,3); echo "</br>"; foreach ($newNames as $name) echo "$name *"; // в данном случае строка будет разбита на 3 слова ?>
В данной функции главное не перепутать порядок следования аргументов. На мой взгляд было бы намного удобнее, если бы сначала передавалась строка, а затем уже разделитель. Также разделителем может быть не только одиночный символ, но и целая строка (смотря что вам нужно разбить на отдельные части):
<?php $stroka = "MoskvaABCPiterABCSochiABCSaratov"; $cities = explode("ABC", $stroka); list($city1, $city2, $city3, $city4) = $cities; //распределяем по переменным foreach ($cities as $city) echo "$city "; // будут выведены все города ?>
В данном случае мы разбили строку по разделителю ABC. Так как мы знаем, что в строке 4 города, то мы все 4 города распределили по переменным.
Работа функции implode() полностью противоположна работе функции explode(). Давайте используем список городов и снова объединим его в одну строку, но используя уже другой разделитель:
<?php $newStroka = implode("|", $cities); echo "$newStroka"; ?>
Обязательно проверьте работу данного скрипта.
Совет: рекомендуется использовать именно эти функции для разбиения строк (они работают достаточно быстро), а не писать свои аналоги. Золотое правило: прежде чем писать функцию — посмотрите, возможно такая уже есть в справочнике и "изобретать велосипед" не нужно.
Домашнее задание: все же мы учимся программировать, поэтому давайте напишем аналог функции implode(). Данная функция будет принимать первым параметром массив-список, а вторым разделитель, по которому нужно объединить элементы массива в строку. Данная функция должна возвращать строку.
Вот тут я набросал небольшой код, можно подсмотреть. Не торопитесь смотреть код, попробуйте реализовать сами.
<?php function newImplode($mas, $sep) { $stroka = ""; foreach ($mas as $elem) { $stroka = $stroka.$elem .$sep; } return substr($stroka, 0, strlen($stroka) - 1); } $arr = array("Alex","Olesya","Ivan"); $imp = newImplode($arr, "|"); echo $imp; ?>
В данной статье вы узнали, как работают функции explode() и implode() в PHP.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.