我正在尝试在字符串中查找特殊字符。这些是带有西班牙语变音符号的元音。该程序应该计算带有变音符号的字符串中的元音。在西班牙语中,他们是áé,í,ó和ú。我只是喜欢前4个。问题是我的代码没有检测到特殊字符
<?php
$string='maría';
$vocales = preg_match_all('/[aeiouáéíó]/i',$string,$matchesV);
echo "<br>vocales = $vocales";
if ((in_array('á',$matchesV))||(in_array('é',$matchesV)) || (in_array('í',$matchesV)) || (in_array('ó',$matchesV))){
$v = $vocales - 1;
echo "<br>v $v";
echo '<br>1'; }
?>
答案 0 :(得分:0)
为什么正则表达式?如果我正确地理解了您的问题,那么只需对this function进行一些更改即可完成:
<?php
function substr_count_array($string, $arr)
{
foreach ($arr as $letter)
$count[$letter] += substr_count($string, $letter);
return $count;
}
$str = 'óóómaóríaéé';
print_r(substr_count_array($str, array("á","é","í","ó")));
<强>输出:强>
Array
(
[á] => 0
[é] => 2
[í] => 1
[ó] => 4
)