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 :: Версия для печати :: регулярка для preg_match_all [3]
Форумы портала PHP.SU » PHP » Регулярные выражения » регулярка для preg_match_all

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

31. tyshka - 25 Февраля, 2015 - 23:48:45 - перейти к сообщению
Ts.Saltan пишет:
PHP:
скопировать код в буфер обмена
  1. $str = 'category_1(1),category_2(2),category_3(2),category_4(1),category_5(1),category_6(1)';
  2. preg_match_all('#(category_[0-9]+)\(([0-9]+)\)#Ui',$str, $res);
  3. $category_items  = 0;
  4. foreach($res[0] as $k=>$v){
  5.         $category_items += $res[2][$k];
  6.         echo $res[1][$k].', ';
  7. }
  8. echo PHP_EOL . '$category_items = '.$category_items;


Получается
CODE (htmlphp):
скопировать код в буфер обмена
  1. category_1, category_2, category_3, category_4, category_5, category_6,
  2. $category_items = 8


прошу прощения, я не уточнил что в примере строки - category_* - название категории не в точности такое, а слово или словo-слово т.е. любое слово и если в названии категории несколько слов они разделены дефисами - и сами эти названия категорий в строке разделены запятыми

слово(1), слово-слово(2), слово(5) и т.д.
32. Ts.Saltan - 26 Февраля, 2015 - 20:09:26 - перейти к сообщению
tyshka пишет:
слово(1), слово-слово(2), слово(5) и т.д.

тогда так

 

Powered by ExBB FM 1.0 RC1