str_split
Если указан необязательный параметр length , возвращаемый массив будет разбит на фрагменты, каждый из которых будет иметь длину length , за исключением последнего фрагмента, который может быть короче, если строка делится неравномерно. По умолчанию параметр length равен 1 , то есть размер каждого фрагмента будет один байт.
Ошибки
Если параметр length меньше 1 , будет выброшена ошибка ValueError .
Список изменений
| Версия | Описание |
|---|---|
| 8.2.0 | Если параметр string не задан, теперь возвращается пустой массив ( array ). Ранее возвращался массив ( array ), содержащий одну пустую строку |
| 8.0.0 | Теперь если параметр length меньше 1 , будет выброшена ошибка ValueError ; ранее, вместо этого выдавалась ошибка уровня E_WARNING , а функция возвращала false . |
Примеры
Пример #1 Пример использования str_split()
$str = «Hello Friend» ;
$arr1 = str_split ( $str );
$arr2 = str_split ( $str , 3 );
print_r ( $arr1 );
print_r ( $arr2 );
Результат выполнения данного примера:
Array ( [0] => H [1] => e [2] => l [3] => l [4] => o [5] => [6] => F [7] => r [8] => i [9] => e [10] => n [11] => d ) Array ( [0] => Hel [1] => lo [2] => Fri [3] => end )
Примечания
Замечание:
Функция str_split() производит разбивку по байтам, а не по символам, в случае использования строк в многобайтных кодировках. Используйте функцию mb_str_split() , чтобы разбить строку на кодовые точки.
Смотрите также
- mb_str_split() — Если задана многобайтовая строка возвращает массив символов
- chunk_split() — Разбивает строку на фрагменты
- preg_split() — Разбивает строку по регулярному выражению
- explode() — Разбивает строку с помощью разделителя
- count_chars() — Возвращает информацию о символах, входящих в строку
- str_word_count() — Возвращает информацию о словах, входящих в строку
- for
User Contributed Notes 3 notes
9 months ago
The function str_split() is not ‘aware’ of words. Here is an adaptation of str_split() that is ‘word-aware’.
$array = str_split_word_aware (
‘In the beginning God created the heaven and the earth. And the earth was without form, and void; and darkness was upon the face of the deep.’ ,
32
);
/**
* This function is similar to str_split() but this function keeps words intact; it never splits through a word.
*
* @return array
*/
function str_split_word_aware ( string $string , int $maxLengthOfLine ): array
if ( $maxLengthOfLine <= 0 ) throw new RuntimeException ( sprintf ( 'The function %s() must have a max length of line at least greater than one' , __FUNCTION__ ));
>
$lines = [];
$words = explode ( ‘ ‘ , $string );
$currentLine = » ;
$lineAccumulator = » ;
foreach ( $words as $currentWord )
$currentWordWithSpace = sprintf ( ‘%s ‘ , $currentWord );
$lineAccumulator .= $currentWordWithSpace ;
if ( strlen ( $lineAccumulator ) < $maxLengthOfLine ) $currentLine = $lineAccumulator ;
continue;
>
// Overwrite the current line and accumulator with the current word
$currentLine = $currentWordWithSpace ;
$lineAccumulator = $currentWordWithSpace ;
>
if ( $currentLine !== » ) $lines [] = $currentLine ;
>
array( 5 ) [ 0 ]=> string ( 29 ) «In the beginning God created »
[ 1 ]=> string ( 30 ) «the heaven and the earth. And »
[ 2 ]=> string ( 28 ) «the earth was without form, »
[ 3 ]=> string ( 27 ) «and void; and darkness was »
[ 4 ]=> string ( 27 ) «upon the face of the deep. »
>
Обработка строк через преобразование в массив — PHP: Массивы
Решить её можно множеством способов. Чем больше называет человек — тем лучше. К ним относятся:
- Посимвольный перебор строки. Эта задачка может быть решена двумя способами. Один из которых связан с использованием конечных автоматов, которым будет посвящён отдельный курс впереди.
- Регулярные выражения. Про них также есть отдельный курс.
- Через преобразование строки в массив слов.
Рассмотрим последний способ. Первым делом нужно превратить строку в массив. Для этого мы воспользуемся функцией explode() , которая разделяет строку, используя указанный разделитель. В нашем случае разделителем является пробел.
function capitalizeWords($sentence) $words = explode(' ', $sentence); // . >
Теперь, используя цикл, легко выполнить операцию capitalize, то есть приведение первой буквы каждого слова к верхнему регистру.
function capitalizeWords($sentence) $words = explode(' ', $sentence); $capitalizedWords = []; foreach ($words as $word) $capitalizedWords[] = ucfirst($word); > // . >
Последнее действие обратно первому. Нужно соединить слова и вернуть получившуюся строку наружу. Для соединения элементов массива в PHP используется функция implode() . Она, как и explode() , принимает на вход разделитель, который теперь используется для сборки строки.
function capitalizeWords($sentence) $words = explode(' ', $sentence); $capitalizedWords = []; foreach ($words as $word) $capitalizedWords[] = ucfirst($word); > return implode(' ', $capitalizedWords); > $greeting = 'hello from Malasia'; print_r(capitalizeWords($greeting)); // => Hello From Malasia
В случае, если строчку нужно разбить по символам, а не по словам, можно воспользоваться функцией mb_str_split() :
$chars = mb_str_split($text); foreach ($chars as $char) print_r($char); >
mb_str_split() принимает второй параметр, в котором можно указать количество символов в каждой группе (элементе получившегося массива). По умолчанию используется число 1, поэтому мы получаем массив, в котором каждый элемент — один символ. Но, если указать, например, 3, то в каждом элементе массива будет по три символа.
$text = 'Hello Friend'; $parts = mb_str_split($text, 3); print_r($parts); // => Array // => ( // => [0] => Hel // => [1] => lo // => [2] => Fri
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
str_split
Если указан необязательный аргумент split_length , возвращаемый массив будет содержать части исходной строки длиной split_length каждая, иначе каждый элемент будет содержать один символ.
Если split_length меньше 1, возвращается FALSE . Если split_length больше длины строки string , то вся строка будет возвращена в первом и единственном элементе массива.
Примеры
Пример #1 Пример использования str_split()
$str = «Hello Friend» ;
$arr1 = str_split ( $str );
$arr2 = str_split ( $str , 3 );
print_r ( $arr1 );
print_r ( $arr2 );
Результат выполнения данного примера:
Array ( [0] => H [1] => e [2] => l [3] => l [4] => o [5] => [6] => F [7] => r [8] => i [9] => e [10] => n [11] => d ) Array ( [0] => Hel [1] => lo [2] => Fri [3] => end )
Примечания
Замечание:
Функция str_split() производит разбивку по байтам, а не по символам, в случае использования строк в многобайтных кодировках.
Смотрите также
- chunk_split() — Разбивает строку на фрагменты
- preg_split() — Разбивает строку по регулярному выражению
- explode() — Разбивает строку с помощью разделителя
- count_chars() — Возвращает информацию о символах, входящих в строку
- str_word_count() — Возвращает информацию о словах, входящих в строку
- for
Сериализовать PHP массив
Считаете ли вы этот инструмент полезным? То поделитесь этим с друзьями или коллегами. Это поможет нам сделать наши бесплатные веб-инструменты лучше.
Эта форма позволяет преобразовать массив PHP в сериализованную строку, вам нужно только вставить синтаксис массива [. ] или array(. ) , вставьте или загрузите свой массив ниже:
Результат преобразования PHP массива в сериализованную строку
Переместить чтобы Сохранить Перенести в «Вставить код» для сохранения
О сериализации php массива
Об этом инструменте
Сериализовать PHP массив была создана для онлайн преобразования PHP массива в соответствующую сериализованную строку. Это может пригодиться для тестирования или отладки ваших массивов, а также для быстрого форматирования и добавления сериализованной строки в вашу конфигурацию или где-то еще.
Как это работает?
Просто вставьте ваш ПХП массив в текстовое поле выше и нажмите кнопку «Конвентировать», и вы получите сериализованную строку в следующем текстовом поле. PHP массива должен быть без переменных и функций, должен быть чистый синтаксис как [. ] или array(. ) .
Пример сериализации php массива
Исходные данные (До):
[ 'first_section' => [ 'one' => '1', 'test' => 'sample', 'job' => 'DEVELOPER', ], 'second_section' => [ 'path' => '/var/test', 'URL' => 'https://wtools.io/', 'second_section' => [ 'one' => '1 associated', 'two' => '2 associated', 0 => '1 unassociated', 1 => '2 unassociated', ], ], 'third_section' => [ 'version' => ['7.0','7.1','7.2','7.3'], ], ]
Конечный результат (После):
a:3:s:14:"second_section";a:3:>s:13:"third_section";a:1:>>
После конвентирования вы можете применить сериализованную строку к вашему проекту или использовать его для каких-то других целей.
Пожертвовать
Вам понравился этот инструмент? Вы можете задонатить нам. Это поможет нам улучшить наши бесплатные веб-инструменты.
