从preg_match_all计算匹配

时间:2013-07-09 09:04:56

标签: php count preg-match preg-match-all

我一直在寻找类似的问题,但没有找到任何有类似问题或可能解决方案的人。 我有preg_match_all函数,它找到了5个匹配项并将它们返回到数组中。我如何计算数组中的字符串?

preg_match_all("/\)\">(.*?)<\/a>/s",$value,$counter);
here is var_dump(counter[1]):
array (size=1)


0 => string 'word1' (length=..)

array (size=1)
  0 => string 'word2' (length=..)

array (size=1)
  0 => string 'word3' (length=..)

array (size=1)
  0 => string 'word4' (length=..)

array (size=1)
  0 => string 'word5' (length=..)

正如你所看到的那样,它返回了5个匹配项,但我无法使用array_count_valuescount()打印该数字...我已经尝试了爆炸然后获取字符串但count()不会工作要么。

    count($counter[1]) returns me ->
int 1

int 1

int 1

int 1

int 1

我需要获得一些比赛,我没有更多的想法,所以任何事情都是非常受欢迎的。

更新:这是var_dump($ value);

string '<h2><a href="javascript:Organigram.toggle('organigram_section_29')">word1</a></h2><div class="show"><p class="nums"><span class="phone">03 839 11 00</span></p>' (length=170)

string '<h2><a href="javascript:Organigram.toggle('organigram_section_35')">word2</a></h2><div class="show"><p class="nums"><span class="phone">03 839 12 00</span><span class="fax">03 839 12 18</span><span class="email email-mod"><a title="info@golte.si" href="mailto:info@golte.si"><img alt='info@golte.si' src='Txt2Image.ashx?AAARAAcASQAAAB0AEgAGADMAEwAGAB8AAAAMAF0ABwAAAFUAGQAGABcAEQBUAAAAAAAQAB8AEQANAFUAEgAGAB0AAABUADIABgAAABIAGABSAEIAQABSAAMADABSAFAARQAtAEcARQBeADYATwALABwAGAANAEMARABZAEMARQBdADIARQA=' /></a></s' ...(长度= 938)`

string '<h2><a href="javascript:Organigram.toggle('organigram_section_51')">word3</a></h2><div class="show"><p class="nums"><span class="phone">03 839 12 12</span></p>' (length=162)

string '<h2><a href="javascript:Organigram.toggle('organigram_section_56')">word4</a></h2><div class="show"><p class="nums"><span class="phone">03 839 12 14</span></p>' (length=168)

string '<h2><a href="javascript:Organigram.toggle('organigram_section_61')">word5</a></h2><div class="show"><p class="nums"><span class="phone">03 839 61 28</span></p>' (length=162)

2 个答案:

答案 0 :(得分:6)

preg_match_all本身返回完整模式匹配的数量(可能为零),如果发生错误则返回FALSE。

$number = preg_match_all("/\)\">(.*?)<\/a>/s",$value,$counter);

答案 1 :(得分:0)

<?php 

/* function strlen1($val)
{
    return strlen($val);
} */

//get the each value count
$b = array_map('strlen', $counter);

print_r($b);