PHP:substr_count()的简单方法,其中substring是数组

时间:2016-09-07 23:04:26

标签: php arrays substring

我在数组中有一系列字母:

$myRange = range("a","c");

我想计算此范围内字母出现在字符串中的次数:

$str = "abcdefg";

有没有办法让我substr_count()来实现这个目标?

例如:substr_count($str, $myRange);

我可以使用foreach循环,但这似乎有点矫枉过正,并不那么优雅。循环是唯一的方法吗?

2 个答案:

答案 0 :(得分:0)

你也可以做一个正则表达式:

preg_match_all("/[a-c]/", "aaabbbcccddasdfasdf", $match);
$array = array();
foreach($match[0] as $val)
{
    if(!isset($array[$val]))
    {
        $array[$val] = 1;
    }
    else
    {
        $array[$val] += 1;
    }
}

print_r($array);

它会给你一个键值数组

Array
(
    [a] => 5
    [b] => 3
    [c] => 3
)

答案 1 :(得分:0)

如果您只使用单个字符,则可以使用:

count( array_intersect( str_split( $str ), $myRange ) );

但是foreach的速度提高了3倍..