PHP и серверы

PHP строку в массив строк

📅 ⏱ 21:19 ⏳ 1 мин 💬 0

Php строку в массив строк: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем тему:

Коротко: строку в массив в PHP превращают функцией explode() — по разделителю. Для разбивки по символам есть str_split() и mb_str_split(), а для сложных правил — preg_split() с регулярным выражением.

Кому и зачемРазбор строк — постоянная задача: получить из адреса список параметров, разбить CSV на поля, обработать список через запятую. Правильный выбор функции экономит код и предотвращает ошибки с русскими буквами.

Функции для строки в массив

Функция Когда использовать
explode() есть чёткий разделитель
str_split() по одному символу (байты)
mb_str_split() по символам UTF-8
preg_split() сложные разделители

explode — по разделителю

Основной и самый быстрый способ. Первый аргумент — разделитель, второй — строка.

CODE
php
$str = "яблоко,груша,слива";
$arr = explode(",", $str);
// ["яблоко", "груша", "слива"]

// с ограничением количества частей
$parts = explode(",", $str, 2);
// ["яблоко", "груша,слива"]

str_split и mb_str_split — по символам

CODE
php
str_split("abc");        // ["a", "b", "c"]
str_split("abc", 2);     // ["ab", "c"]

// для кириллицы и UTF-8
mb_str_split("привет");  // ["п","р","и","в","е","т"]

str_split работает с байтами, поэтому русские буквы в UTF-8 «поедут». Для кириллицы всегда берите mb_str_split.

Вкладки: примеры



CODE
php
$row = "Иван;32;Москва";
[$name, $age, $city] = explode(";", $row);

Разбор CSV-строки в именованные переменные. Удобно, когда структура полей известна и стабильна.

CODE
php
$str = "один  два   три";
$arr = preg_split("/\s+/", $str);
// ["один", "два", "три"]

preg_split пригодится, когда разделителей несколько или их количество переменное: пробелы, запятые, точки с запятой.

CODE
php
$text = "строка1\nстрока2\nстрока3";
$lines = explode("\n", $text);
$lines = array_map('trim', $lines);

Разбивка текста на строки и очистка пробелов через array_map. Частая задача при обработке файлов и вставленных списков.

Вниманиеexplode() вернёт массив из одного элемента, если разделителя в строке нет. А если строка пустая, результат может быть неожиданным — всегда проверяйте входные данные перед разбором.

Практика: выбрать функцию

  1. Есть чёткий разделитель? Берите explode().
  2. Нужно разбить по символам кириллицы? — mb_str_split().
  3. Используете ASCII-строку? Подойдёт str_split().
  4. Разделителей несколько — preg_split().
  5. Очистите элементы: array_map('trim', $arr).
  6. Проверьте результат функцией print_r или var_dump.

Частые ошибки: причина → решение

Симптом Причина Решение
Русские буквы «поломались» str_split по байтам mb_str_split
Массив из одного элемента разделителя нет проверить строку
Лишние пробелы в элементах не очищены array_map('trim')
Пустые элементы в конце лишний разделитель отфильтровать пустые
Не разбивает по нескольким знакам использован explode preg_split

Проверьте себя

Чек-лист




Чем разбить строку по запятой?




Что вернёт explode(), если разделителя нет?




Вопросы и ответы

str_split режет строку по байтам, а буква в UTF-8 занимает два байта. В результате символ разрывается пополам. Для кириллицы используйте mb_str_split.

Да, через preg_split с регулярным выражением, например /[,;]/ для запятой и точки с запятой. explode умеет только один разделитель.

Используйте array_filter($arr) — он уберёт пустые значения. Если важно оставить 0, добавьте свою функцию проверки.

Да, массив в строку собирает implode(): implode(",", $arr) соединит элементы через запятую.

Итоги

  • По разделителю строку разбивает explode().
  • По символам — str_split(), для UTF-8 — mb_str_split().
  • Сложные разделители — задача preg_split().
  • Результат очищают через array_map('trim') и array_filter.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

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

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость