explode() и implode() PHP

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.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *