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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подскажите как правильно?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
strengerst
Отправлено: 29 Июня, 2012 - 22:09:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




У меня есть массив vait в котором есть данные такого типа как:
PHP:
скопировать код в буфер обмена
  1. Array ( [0] => :42-44 [1] =>  :42,44,45,46 [2] => k:42,44 [3] => :42-52 [4] => :42-44 [5] =>:42-44,52 [6] =>-:42-44 [7] => гш:42-44 [8] => :42-44 [9] => б:42-46 [10] => <:42-46 [11] => ':42-46 [12] => ,:42-46);
и так далее. Как мне заполучить массив с данными этого массива который будет содержать цифровые данные типа:
PHP:
скопировать код в буфер обмена
  1. Array ( [0] =>42-44[1] =>42,44,45,46[2] =>42,44[3] =>42-52 [4] =>42-44 [5] => 42-44,52 [6] =>42-44 [7] =>42-44 [8] => 42-44 [9] =>42-46 [10] =>42-46 [11] =>42-46 [12] => 42-46);


Я пытался делать так но не получаеться
PHP:
скопировать код в буфер обмена
  1. $n=count(vait);
  2. for($i=0; $i<$n; $i++){
  3. preg_match_all('/[\s]*([0-9]{2}[\s]*[,]?[-]?){0,}/', $vait, $contio);
  4. $dert[]=$contio[0][$i];}

Как бы так правильно зделать с помощью регулярных выражений?

(Отредактировано автором: 29 Июня, 2012 - 22:11:30)

 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Июня, 2012 - 22:14:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. foreach ($arr as $k => $item) {
  2.   //$arr[$k] = preg_replace('/^&#\d+;:/', '', $item);
  3.   $arr[$k] = preg_replace('/^.*:([\d-,]+)/', '$1', $item);
  4. }

Может быть двоеточие надо будет заэкранировать, я не проверял.
(Добавление)
Упс - после того как вы отредактировали сообщение - пропали xml-сущности в тексте вашего кода.
Но смысл у меня не меняется особо.

(Отредактировано автором: 29 Июня, 2012 - 22:18:50)

 
 Top
strengerst
Отправлено: 29 Июня, 2012 - 22:20:33
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Что ты меня еще больше запутал. А можно без foreach через for?
 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Июня, 2012 - 22:22:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Нельзя - я запрещаю Ниндзя
 
 Top
strengerst
Отправлено: 29 Июня, 2012 - 22:28:38
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




ладно тогда помоги переписать код.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $dannue=file_get_contents('http://bicotone.com.ua/catalog/category/17-2011-06-14-14-27-05');
  2.         preg_match_all('/[Размер][\s]*[:][\s]*([0-9]{2}[\s]*[,]?[-]?[\s]?){0,}/', $dannue, $lesti);

С этого адресса хочу заполучить в виде массива все размеры. Как правильно?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB