Разобрать форматированную однострочную строку в массив ассоциативных массивов с предопределенными именами столбцов.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Разобрать форматированную однострочную строку в массив ассоциативных массивов с предопределенными именами столбцов.

Сообщение Anonymous »

У меня есть проблема, которая на первый взгляд кажется простой, но она превосходит мои скудные навыки работы с регулярными выражениями. У меня есть строка, которую мне нужно преобразовать в массив, а затем соответствующим образом обработать значения, что достаточно просто, но формат строки нельзя изменить (она генерируется где-то еще), и ее логика меня сбивает с толку.

Строка:

Код: Выделить всё

[6] [2] [3] 12.00; [5] [4]
По сути, это набор идентификаторов и десятичных значений (в данном случае идентификатор 3 == 12,00). Количество идентификаторов может измениться в любой момент, и десятичные значения могут присутствовать в любом или во всех идентификаторах.

В идеальном мире у меня был бы следующий массив:

Код: Выделить всё

Array (
[0] => Array (
[id]  => 6
[num] =>
)
[1] => Array (
[id]  => 2
[num] =>
)
[2] => Array (
[id]  => 3
[num] => 12.00
)
Etc...
Кто-нибудь из вас, знатоков регулярных выражений, знает, как этого можно добиться с меньшим количеством ругани, чем мне удалось?

На данный момент мне удалось извлечь идентификатор, используя:

Код: Выделить всё

preg_match_all('@\[(.*?)\]@s', $string, $array);
и десятичные дроби с помощью:

Код: Выделить всё

preg_match_all('/([0-9]+[,\.]{1}[0-9]{2})/', $string, $array);
но теряется корреляция между идентификаторами и значениями.

Подробнее здесь: https://stackoverflow.com/questions/814 ... ays-with-p
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»