Как преобразовать строку в массив php
Перейти к содержимому

Как преобразовать строку в массив php

  • автор:

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: Массивы

Решить её можно множеством способов. Чем больше называет человек — тем лучше. К ним относятся:

  1. Посимвольный перебор строки. Эта задачка может быть решена двумя способами. Один из которых связан с использованием конечных автоматов, которым будет посвящён отдельный курс впереди.
  2. Регулярные выражения. Про них также есть отдельный курс.
  3. Через преобразование строки в массив слов.

Рассмотрим последний способ. Первым делом нужно превратить строку в массив. Для этого мы воспользуемся функцией 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:>>

После конвентирования вы можете применить сериализованную строку к вашему проекту или использовать его для каких-то других целей.

Пожертвовать

Вам понравился этот инструмент? Вы можете задонатить нам. Это поможет нам улучшить наши бесплатные веб-инструменты.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *