1

Str split: примеры (PHP)

Использование str_split для разделения строк в PHP
Раздел: Работа со строками
str_split(string string [, int length]): array

Основные сведения о str_split

Функция str_split() преобразует строку в массив, разбивая её на части заданной длины. Она применяется для обработки строк фиксированного формата, текстовых данных с определённой структурой или при необходимости разделения строки на равные отрезки.

Аргументы функции

Функция принимает два параметра:

  • string (обязательный) - исходная строка для разбиения
  • length (опциональный) - максимальная длина каждого элемента массива. По умолчанию равен 1.

Возвращает массив с фрагментами строки. Если указанная длина меньше 1, функция вернёт false.

Простые примеры использования

Разделение по одному символу
$str = 'Hello';
print_r(str_split($str));
Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
)
Указание длины отрезков
$str = '1234567890';
print_r(str_split($str, 2));
Array
(
    [0] => 12
    [1] => 34
    [2] => 56
    [3] => 78
    [4] => 90
)
Неравномерное разделение
$str = 'abcdefg';
print_r(str_split($str, 3));
Array
(
    [0] => abc
    [1] => def
    [2] => g
)

Похожие функции в PHP

  • mb_str_split() - аналогична str_split, но корректно работает с многобайтовыми кодировками (UTF-8). Используется для текстов на русском, китайском и других языках.
  • explode() - разбивает строку по разделителю, а не по фиксированной длине. Подходит для CSV, логов и других структурированных данных.
  • chunk_split() - разделяет строку на части и добавляет между ними разделитель, часто используется для кодирования base64.
  • preg_split() - выполняет разделение по регулярному выражению, обеспечивает максимальную гибкость.

Распространённые ошибки

Некорректная длина
$result = str_split('test', 0);
var_dump($result);
bool(false)
Работа с многобайтовыми строками
$str = 'Привет';
$result = str_split($str, 2);
print_r($result);
// Может вернуть некорректные символы
// Для UTF-8 следует использовать mb_str_split
Ожидание строки
$number = 12345;
$result = str_split($number);
print_r($result);
// Функция автоматически преобразует число в строку
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Изменения в новых версиях PHP

В PHP 8.0 функция стала более строгой к типам передаваемых аргументов. Передача значения null в параметр length теперь вызывает ошибку TypeError. Ранее null интерпретировался как 0, что приводило к возврату false.

// PHP 7.4 и ранее
$result = str_split('hello', null); // Возвращает false

// PHP 8.0+
$result = str_split('hello', null); // TypeError

Расширенные варианты применения

Обработка бинарных данных
$binary = pack('H*', '1a2b3c4d');
$chunks = str_split($binary, 2);
foreach ($chunks as $chunk) {
    echo bin2hex($chunk) . ' ';
}
1a2b 3c4d
Создание визуальных представлений
$cardNumber = '1234567812345678';
$parts = str_split($cardNumber, 4);
echo implode(' ', $parts);
1234 5678 1234 5678
Анализ шаблонов
$dna = 'ATCGATTGAGCTCTAGCG';
$codons = str_split($dna, 3);
print_r($codons);
Array
(
    [0] => ATC
    [1] => GAT
    [2] => TGA
    [3] => GCT
    [4] => CTA
    [5] => GCG
)
Обработка фиксированных форматов
$record = 'JohnDoe 25MNYC ';
$fields = str_split($record, 5);
print_r(array_map('trim', $fields));
Array
(
    [0] => JohnD
    [1] => oe 25
    [2] => MNYC
    [3] =>
)

Аналоги в других языках

Python
text = 'Hello World'
# Использование спискового включения
result = [text[i:i+2] for i in range(0, len(text), 2)]
print(result)
['He', 'll', 'o ', 'Wo', 'rl', 'd']
JavaScript
let str = 'Hello';
// Использование match с регулярным выражением
let result = str.match(/.{1,2}/g) || [];
console.log(result);
['He', 'll', 'o']
MySQL
-- Прямого аналога нет, но можно использовать SUBSTRING
SET @str = '123456';
SELECT 
  SUBSTRING(@str, 1, 2) as part1,
  SUBSTRING(@str, 3, 2) as part2,
  SUBSTRING(@str, 5, 2) as part3;
part1 | part2 | part3
12    | 34    | 56

PHP str_split function comments

En
Str split Convert a string to an array