Cтроку в массив по разделителю в PHP: explode, str_split, strtok - что выбрать?

1. Функция explode()

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

Простой пример кода из документации:

// Пример 1
$pizza  = "кусок1 кусок2 кусок3 кусок4 кусок5 кусок6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // кусок1
echo $pieces[1]; // кусок2

// Пример 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

2. preg_split: разбить строку на массив по регулярному выражению


Если возможностей explode() недостаточно, то можно использовать более мощную функцию: preg_split(). Она позволяет разбить строку не по фиксированному набору символов, а по регулярному выражению.

Пример из документации:

// разбиваем строку по произвольному числу запятых и пробельных символов,
// которые включают в себя  " ", \r, \t, \n и \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);

Результат:

/*
Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)
*/

Преобразовать строку в массив по количеству символов

Функция str_split() преобразует строку в массив, разбивая ее на элементы с заданным количеством символов. Хотите узнать как ее использовать? Посмотрите документацию.

Пример:

$str = "Hello Friend";
$arr2 = str_split($str, 3);
print_r($arr2)

Результат:

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

Функция strtok(): разбиение строки на токены


Есть еще функция strtok(). Она позволит задать набор из нескольких символов-разделителей, для разделения строки по словам: читать подробнее про strok.