PHP, помогите с регуляркой

150
08 сентября 2017, 22:47

Есть категории товаров, которые отдаются в виде

{"СписокЗначений",{{{"Строка","КамАЗ"},"","0"},{{"Строка","BPW"},"","0"}}}

нужно из этого мусора вытащить только значения КамАЗ и BPW, и записать их через запятую, вот так: КамАЗ,BPW, как это можно сделать?

P.S. категорий может быть и одна и две и три и больше.

Answer 1

Поле чудес спешит на помощь!

$str = '{"СписокЗначений",{{{"Строка","КамАЗ"},"","0"},{{"Строка","BPW"},"","0"}}}';
preg_match_all('/\{"Строка","(?<aaaaaavtomobiiiil>[^"]+)"\}/', $str, $matches);
echo implode(",", $matches['aaaaaavtomobiiiil']);
// КамАЗ,BPW

Главное - ключевое слово "Аааавтомобиииль"!

Answer 2

Просто ради варианта

$text = '{"СписокЗначений",{{{"Строка","КамАЗ"},"","0"},{{"Строка","BPW"},"","0"}}}';
$text = str_replace(['{','}'], ['[',']'], $text);
$array = eval("return $text;");
$cars = [];
foreach($array[1] as $value){
    $cars[] = $value[0][1];
}
echo implode(",", $cars);
READ ALSO
Добавление элемента в инфоблок

Добавление элемента в инфоблок

Пытаюсь добавить в инфоблок новый элемент, но на выходе получаю ошибку такого рода "Для добавления элементов инфоблоков используйте вызов...

376
Тестовые письма на почте. Laravel

Тестовые письма на почте. Laravel

Такие сообщение(обратный звонок на сайте) приходят на почту каждый день, по 10-15 шт

299
Защищен ли запрос от SQL инъекций?

Защищен ли запрос от SQL инъекций?

Подскажите функции для защиты) вот сам запрос) Все параметры в метод передаются из строки запроса

239
Переход на PHP 7 Как переделать из preg_replace в preg_replace_callback?

Переход на PHP 7 Как переделать из preg_replace в preg_replace_callback?

ЗдравствуйтеПеревожу сайты на PHP и там в шаблонизаторах используется такая конструкция

251