как получить строки из фигурных скобок? - PullRequest
3 голосов
/ 11 декабря 2011

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

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

$array = array(
  "other" => "{name:2},{value:2},{align:4},{height:4, color:red}",
  "another" => "{name:2},{value:2},{align:4},{height:4, color:red}"
);

Я действительно изо всех сил ... и ценю вашу помощь. Спасибо

Ответы [ 3 ]

4 голосов
/ 11 декабря 2011
preg_match_all('/\{([^}]*)\}/', $str, $matches);
foreach($matches[1] as $match)
{
    $pieces = explode(',', $match);
    foreach($pieces as $pair)
    {
        list($key, $value) = explode(':', trim($pair));
        // do something with $key and $value
    }
}
2 голосов
/ 11 декабря 2011

Наоборот, думаю взорваться будет отлично работать.Разбить на отдельные строки, а затем для каждой строки извлечь из индекса 1 в индекс [arraylength-1], поскольку индекс 0 содержит {, а последний индекс содержит}.

$str = substr($str, 1, strlen($str)-1);

Так для каждогострока вырезана из индекса 1 в last_index-1.

РЕДАКТИРОВАТЬ:

ПОСЛЕ того, как вы сделаете первый взрыв (который разделит его на 2 больших фрагмента): chunk1 и chunk2

foreach chunk array $pieces=explode(",",$chunk1); // или чанк 2 (это дополнительно разделит фрагменты на строки, которые были разделены,)

$str = substr($pieces, 1, strlen($pieces)-1);

Затем для каждого элемента $ получите содержимое вмежду.(псевдокод)

2 голосов
/ 11 декабря 2011

попробуйте и прочитайте о json_decode и json_encode функциях

$result = json_decode('['.$array['other'].']', true);

UPDATE

попробовав это, я заметил, что ваша строка не является допустимым JSON, поэтому мой ответ не является хорошим решением, пока вы не получите формат {"key": "value"}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...