Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Регулярка или иной способ вырезать из строки нужное.
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Регулярка или иной способ вырезать из строки нужное.

Страниц (1): [1]
 

1. Kaufmann - 03 Марта, 2013 - 14:00:06 - перейти к сообщению
На сервер приходит строка:
PHP:
скопировать код в буфер обмена
  1. 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 строки:
PHP:
скопировать код в буфер обмена
  1. [ "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" ]

и
2. LShark - 03 Марта, 2013 - 14:24:07 - перейти к сообщению
Приходят именно ТРИ массива? Или одн массив, в котором эти вложены?

Если вложены - то можно и через foreach

PHP:
скопировать код в буфер обмена
  1. $foot=array();
  2. foreach(твой_массив as $val) {
  3. $foot[]=$val;
  4. }
  5.  

В результате - $foot-массив, в котором первый элемент - это первая строка, второй - вторая, последний - последняя.

На и потом переделать в строки с помощью implode():

CODE (htmlphp):
скопировать код в буфер обмена
  1. $first= implode(",",$foot[0]);
(аналогично, если приходят ТРИ массива:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $first= implode(",",$array1);

Получишь СТРОКУ, в которой запятыми будут разделены все значения аррая.
3. Kaufmann - 03 Марта, 2013 - 15:15:19 - перейти к сообщению
LShark пишет:
Приходят именно ТРИ массива? Или одн массив, в котором эти вложены?

LShark, это в JavaScript, строка которую я привел, была бы 3-мя массивами... А в php, у меня на сервере, - это cчитается обычной строкой. Вот такой вот ньюанс!

Поэтому из этой строки нужно вырезать нужное, чтобы получилось две строки как я показал выше. В последствии, эти строки будут забираться ajax'ом с клиента, и раскладываться в привычные JavaScript массивы...

ДОБАВЛЕНО

Думаю так нагляднее будет:

Имею на входе:
PHP:
скопировать код в буфер обмена
  1. $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" ];';


Хочу вырезать и получить из этой строки на выходе две строки:
PHP:
скопировать код в буфер обмена
  1. $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" ]';
  2.  
  3. $output_string2 = '[ "AAA", "MMM" ]';

 

Powered by ExBB FM 1.0 RC1