Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как вырезать и собрать нужное из строки?

86K
03 марта 2013 года
Kaufmann
8 / / 28.02.2013
На сервер приходит строка:

 
Код:
var array1 = [ "9B10","na","0","Fi","NYE","12:00 am","Mar. 2, 2013","20.8800" ]; var array2 = [ "1ff0","Ta","0","We","NYE","5:00 pm","Mar. 2, 2013","13.0013" ]; var arrTotal = [ "AAA", "MMM" ];
Нужна регулярка или иной способ, чтобы получить на выходе 2 строки:

 
Код:
[ "9B10","na","0","Fi","NYE","12:00 am","Mar. 2, 2013","20.8800" ],[ "1ff0","Ta","0","We","NYE","5:00 pm","Mar. 2, 2013","13.0013" ]
и

 
Код:
[ "AAA", "MMM" ]
8
03 марта 2013 года
mfender
3.5K / / 15.06.2005
 
Код:
$arr = array();
preg_match_all("/\[.*?\]/", $str, $arr);
Ну, соответственно в $arr будут требуемые строки.
86K
03 марта 2013 года
Kaufmann
8 / / 28.02.2013
Цитата: mfender
Ну, соответственно в $arr будут требуемые строки.



Где-то близко.. но, не смог получить вторую строчку.. возможно, что не так сделал - буду пробовать еще, но на всякий случай:

так объясню: думаю нагляднее...

Имею на входе:

 
Код:
$input_string = 'var array1 = [ "9B10","na","0","Fi","NYE","12:00 am","Mar. 2, 2013","20.8800" ]; var array2 = [ "1ff0","Ta","0","We","NYE","5:00 pm","Mar. 2, 2013","13.0013" ]; var arrTotal = [ "AAA", "MMM" ];';
Хочу вырезать и получить из этой строки на выходе две строки:
 
Код:
$output_string1 = '[ "9B10","na","0","Fi","NYE","12:00 am","Mar. 2, 2013","20.8800" ],[ "1ff0","Ta","0","We","NYE","5:00 pm","Mar. 2, 2013","13.0013" ]';

$output_string2 = '[ "AAA", "MMM" ]';
8
03 марта 2013 года
mfender
3.5K / / 15.06.2005
А вот сделать из моего кода просто вот так:

 
Код:
$output_string1 = "{$arr[0][0]},{$arr[0][1]}";
$output_string2 = $arr[0][2];
религия не позволяет?
86K
04 марта 2013 года
Kaufmann
8 / / 28.02.2013
Цитата: mfender
А вот сделать из моего кода просто вот так:

 
Код:
$output_string1 = "{$arr[0][0]},{$arr[0][1]}";
$output_string2 = $arr[0][2];
религия не позволяет?



Нет, так не пойдет! Таких $arr[n][n] может быть любое количество и изначально оно не известно.. Так что не получится явно указать, что эти два массива - сюда, а последний - сюда. Религия не позволяет!

8
04 марта 2013 года
mfender
3.5K / / 15.06.2005
Ну, мы тут тоже не телепаты, не могем знать что у тебя там на уме...
414
04 марта 2013 года
CassandraDied
763 / / 24.05.2012
Цитата: Kaufmann
[quote=mfender;10914] Так что не получится явно указать, что эти два массива - сюда, а последний - сюда.


Последний массив всегда называется arrTotal? Точнее опиши, что должно быть в первом массиве на выходе, а что во втором.

86K
04 марта 2013 года
Kaufmann
8 / / 28.02.2013
Цитата: CassandraDied
Цитата: Kaufmann
[quote=mfender;10914] Так что не получится явно указать, что эти два массива - сюда, а последний - сюда.


Последний массив всегда называется arrTotal? Точнее опиши, что должно быть в первом массиве на выходе, а что во втором.



Да! Последний массив всегда называется arrTotal. На счет того, что должно быть на выходе:

В первом массиве должны быть содержимое всех массивов кроме последнего, через запятую и в одну строку.
(т.е. так: [содержимое var array1], [содержимое var array2], ... , [содержимое var arrayN])

Во втором массиве должно быть содержимое последнего массива, который всегда называется arrTotal.
(т.е. так: [содержимое последнего arrTotal])

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог