我处理一些阿拉伯风格的文字。有一个数组counterChecker
。
它存储了一些阿拉伯语单词'$word = array();
。
你看到有些单词上有帽子(我们称之为“帽子”)。我尝试用方法lim', 'ali', 'kefrâ', 'lîm'
计算每个单词但是它将array_count_values($word);
和lim
视为两个不同的单词。它应该算作一个。它有不同的方法吗?我能做什么?感谢。
答案 0 :(得分:0)
您可以编写特定的功能,将字符串中的“带帽子”字符转换为没有这些字符的字符。有一个例子(单词是波兰语,但原则完全相同):
<?php
$word = array('źrebię', 'łódź', 'wiazanka', 'lodź', 'wiązanka');
$result = array_count_values($word);
var_dump($result); //its wrong answer
$wordConverted = array();
foreach($word as $element)
{
$wordConverted[] = transformSpecialChars($element);
}
var_dump(array_count_values($wordConverted)); //count correctly
function transformSpecialChars($string)
{
$replaceFrom = array('ą', 'ę', 'ź', 'ż', 'ł', 'ó');
$replaceTo = array('a', 'e', 'z', 'z', 'l', 'o');
return str_replace($replaceFrom, $replaceTo, $string);
}
两个var_dump
的结果:
// WRONG
array(5) {
["źrebię"]=>
int(1)
["łódź"]=>
int(1)
["wiazanka"]=>
int(1)
["lodź"]=>
int(1)
["wiązanka"]=>
int(1)
}
// SEEMS FINE
array(3) {
["zrebie"]=>
int(1)
["lodz"]=>
int(2)
["wiazanka"]=>
int(2)
}
当然,您应该适合用于转换($replaceFrom
和$replaceTo
)的数组以满足您的需求。