Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
12 / 12 / 1
Регистрация: 16.07.2012
Сообщений: 777

Как разбить строку и преобразовать в многомерный массив

30.01.2025, 17:40. Показов 1163. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Есть строка, где данные разбиты символом конца строки и запятой.
PHP
1
$popular_search_queries = 'аа бб,584875'.PHP_EOL.'ааа ббб,565040'.PHP_EOL.'аааа бббб,437770';
Я знаю как разбить строку, например, через перенос строки:
PHP
1
2
$pieces = explode(PHP_EOL, $popular_search_queries);
    print_r($pieces);
Получится
PHP
1
Array ( [0] => аа бб,584875 [1] => ааа ббб,565040 [2] => аааа бббб,437770 )
Как разбить данные (с разделением через запятую), чтобы получилось
PHP
1
2
3
4
5
Array (
[0] => Array ( [0] =>  аа бб [1] => 584875),
[1] => Array ( [0] => ааа ббб [1] => 565040),
[2] => Array ( [0] => аааа бббб [1] => 437770 )
);
Без foreach не обойтись?

Заранее благодарен за ответ.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2025, 17:40
Ответы с готовыми решениями:

Как инициализировать многомерный массив в общем виде?
как инициализировать многомерный массив в общем виде? есть файл, в котором присутствуют вхождения A,B,C,D. Дак вот надо, чтобы, для...

Как разбить две строки на определенную длину?
у меня есть массив из строк вот такого вида 0 => string '0000000' (length=7) 1 => string '0001101' (length=7) 2 => string...

Строковая переменная выводится как массив.
Есть два файла. Первый: <?php function word() { $words = array( 'системы отопления', ...

3
Невнимательный
 Аватар для ft4l
3107 / 1279 / 358
Регистрация: 08.02.2013
Сообщений: 7,477
Записей в блоге: 2
30.01.2025, 18:02
Лучший ответ Сообщение было отмечено alanat как решение

Решение

Цитата Сообщение от alanat Посмотреть сообщение
Без foreach не обойтись?
обойтись... но бывает и цикл для чего-нибудь ещё оптимальнее
PHP
1
2
3
4
$popular_search_queries = 'аа бб,584875'.PHP_EOL.'ааа ббб,565040'.PHP_EOL.'аааа бббб,437770';
$arr = array_map('str_getcsv', preg_split('/\R+/', $popular_search_queries));
 
var_export($arr);
Добавлено через 2 минуты
Цитата Сообщение от ft4l Посмотреть сообщение
\R+
на случай если переносов по разному .. можно просто \R, можно explode()
1
12 / 12 / 1
Регистрация: 16.07.2012
Сообщений: 777
30.01.2025, 20:20  [ТС]
Цитата Сообщение от ft4l Посмотреть сообщение
$arr = array_map('str_getcsv', preg_split('/\R+/', $popular_search_queries));
Как только появляется буква "х", массив неправильно обрабатывается.
Например,
PHP
1
$popular_search_queries = 'чехол бб,584875'.PHP_EOL.'ааа костюм,565040'.PHP_EOL.'аааа бархат,437770';
И результат получается такой:
PHP
1
Array ( [0] => Array ( [0] => че� ) [1] => Array ( [0] => ол бб [1] => 584875 ) [2] => Array ( [0] => ааа костюм [1] => 565040 ) [3] => Array ( [0] => аааа бар� ) [4] => Array ( [0] => ат [1] => 437770 ) )
Почему появляется и как с этим бороться?
0
928 / 550 / 292
Регистрация: 07.11.2022
Сообщений: 901
30.01.2025, 20:54
Лучший ответ Сообщение было отмечено alanat как решение

Решение

Цитата Сообщение от alanat Посмотреть сообщение
Почему появляется � и как с этим бороться?
Попробуйте использовать такое:
PHP
1
$arr = array_map('str_getcsv', preg_split('/\R+/u', $popular_search_queries));
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.01.2025, 20:54
Помогаю со студенческими работами здесь

Разбить текст в массив по строкам
Мне нужен php-код который например из переменной $text в которой содержится : $php = '1 строка 2 строка 3 строка'; сделает вот так...

Как преобразовать число в строку?
Как преобразовать число в строку? $name = 1; $name = (string)$name; echo strval($name) + 1; // Выводит 2, а нужно 11

Строку преобразовать в математическое выражение. Как доработать код?
//в итоге мы должны получить из введенной строки 2+6+8 значение суммы. //вот мой код, не пойму почему не работает: //ввели к примеру...

Как преобразовать строку запроса
у меня след. код: $str = '&?&/'; echo '<a href='next.php?mvar=$str'>anchor</a>';При аналогичной пересылке через форму в адресной ссылке...

Как разбить строку "www.test@tested.net" ?
А как быть в таком случае. Мне нужно поделить эту строку www.test@tested.net на две www.test и tested.net Если так то в массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru