explode ( $delimiter , $string , $limit);
$delimiter // это разделить, на который будет ориентироваться функция.
$string // строка, которую нужно разделить и поместить в массив
$limit // ограничение. Может быть как положительным (берутся первые значения строки) так и отрицательным (берутся элементы с конца строки).
$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 функцию для того, чтобы разбить строку в массив.