【问题标题】:Counting matches from preg_match_all从 preg_match_all 计算匹配
【发布时间】:2026-01-25 03:35:02
【问题描述】:

我一直在寻找类似的问题,但没有找到有类似问题或可能的解决方案的人。 我有 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() 打印该数字...我尝试过 imploding 然后获取字符串,但 count() 也不起作用。

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

int 1

int 1

int 1

int 1

我需要获得匹配的数量,我没有更多的想法,所以任何事情都非常受欢迎。

更新:这里是 var_dump($value);

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

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

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

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

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

【问题讨论】:

  • 使用count()函数获取数组计数

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


【解决方案1】:

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

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

【讨论】:

  • 它返回匹配的总数。如果它返回 1,则意味着您的模式只有 1 个匹配项。
  • $numRows2 = var_dump($counter[1]); --> array (size=1) 0 => string 'sale' (length=4) array (size=1) 0 => string 'manage' (length=6) array (size=1) 0 => string' cash' (length=4) array (size=1) 0 => string 'accounts' (length=8) array (size=1) 0 => string 'director' (length=8)
  • 你能把$value的内容粘贴到bin吗?
【解决方案2】:
<?php 

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

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

print_r($b);

【讨论】:

    最近更新 更多