Разбиваем строку на массив
Самый простой пример:
Скопировано
$str = 'это какая-то строка';
$arr = explode( ' ', $str );
Показать код
В результате массив $arr
будет содержать такие значения:
[0] => это
[1] => какая-то
[2] => строка
Пример посложнее - элементы в строке разделены запятыми и окружены пробелами.
Скопировано
$str = ' один, два , три';
$arr = array_map( 'trim', explode( ',', $str ) );
Показать код
Результат:
[0] => один
[1] => два
[2] => три
Если исходный текст может быть еще более запутанным, то тогда так:
Скопировано
$str = ' один, два,, , , три ';
$arr = preg_split( '/(\s*,*\s*)*,+(\s*,*\s*)*/', trim( $str ) );
Показать код
Результат:
[0] => один
[1] => два
[2] => три
Допустим нам надо разбить строку текста на куски не более чем по 15 символов в каждом, да еще чтобы слова не разрывались при этом на части.
Скопировано
$str = 'Это какой-то текст, который надо разбить на массив по 15 символов в строке';
$width = 15;
$search = '/(.{1,' . $width . '})(?:\s|$)|(.{' . $width . '})/uS';
$replace = '$1$2' . PHP_EOL;
$arr = array_filter( explode( PHP_EOL, preg_replace( $search, $replace, $str ) ) );
Показать код
Результат:
[0] => Это какой-то
[1] => текст, который
[2] => надо разбить на
[3] => массив по 15
[4] => символов в
[5] => строке
Разбиваем многострочный текст на массив строк
Простой пример:
Скопировано
$str = 'строка 1
строка 2
строка 3';
$arr = explode( PHP_EOL, $str );
Показать код
Результат:
[0] => строка 1
[1] => строка 2
[2] => строка 3
Если в тексте могут быть пустые строки и надо чтобы в конечном массиве не было пустых элементов, можно сделать так:
Скопировано
$str = '
одна строка
вторая строка
';
$arr = array_filter( explode( PHP_EOL, $str ) );
Показать код
Результат:
[1] => одна строка
[2] => вторая строка
Здесь видно, что индексы массива нарушаются и могут идти не по порядку. Надо это иметь ввиду.