Материал

PHP функция Explode

Разбиваем строку в массив на PHP. Функция Explode

Имеется список аргументов в строке. Как разбить это список при помощи разделителя и поместить в массив. Для этого используем PHP функцию Explode

Описание PHP функции explode

explode ( $delimiter , $string , $limit);

$delimiter - это разделить, на который будет ориентироваться функция.

$string - строка, которую нужно разделить и поместить в массив

$limit - ограничение. Может быть как положительным (берутся первые значения строки) так и отрицательным (берутся элементы с конца строки).

Пример записи php функции explode:

$arbuz_string  = "арбуз1,арбуз2,арбуз3";
$arbuz = explode(",", $arbuz_string);
echo $arbuz[0]; // арбуз1
echo $arbuz[1]; // арбуз2

Где функция Explode может быть использована? На моем опыте самым распространенным вариантом является обработка строк из базы данных. Например, в системе документооборота в одной ячейке хранится id отделов, которым нужно ознакомиться с документом. Пример такой записи в MySQL базе данных:

$stroka ="2=1;3=0;5=1;8=1;24=1;41=1";

Итак, 2=1, где 2 это id отдела, равно 1 - ознакомлен с документом, 0 - не ознакомлен. 

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

Мы разбиваем строку в массив при помощи функции PHP explode:

$otdeli = explode(";", $stroka);
echo $otdeli[0]; // 2=1
echo $otdeli[1]; // 3=0

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

foreach($otdeli as $item){
$otdel = explode("=", $item);
echo $otdel[0]; // 2
echo $otdel[1]; // 1
//  обрабатываем массив $otdel
}

При помощи цикла foreach мы прошлись по всем элементам массива и разделили каждый в отдельные массивы. Можно создать многомерный массив:

$i = 0;
foreach($otdeli as $item){
$otdel[$i] = explode("=", $item);
$i += 1;
}
echo $otdel[0][0]; // 2
echo $otdel[0][1]; // 1
echo $otdel[1][0]; // 3
echo $otdel[1][1]; // 0

Усложнить данную задачу можно добавив время ознакомления каждого отдела с документом. Тогда в многомерном массиве появится еще один элемент, но придется еще раз использовать PHP функцию для того, чтобы разбить строку в массив.