为什么两个单词在相同时不匹配?

时间:2013-04-01 16:18:19

标签: php arrays string

我必须比较两个词。第一个词是“módulo”,另一个是“modulo”。我试图更换重音,然后我意识到这个词在调用替换重音的方法之后从未改变过。 我从两个数组得到第一个字。来自unserialize数组的第一个数组,名为 tipo

<? 
$tipo = unserialize(TIPO); 
$estado = unserialize(ESTADO);  ?>

第二个数组来自数据库结果, $ prop ['propiedad_tipo'] propiedad_tipo 是int类型。

$tipo_dato = (@$prop['propiedad_tipo'])?$tipo[ $prop['propiedad_tipo'] ]:'';

通过这个值,我可以从“ tipo ”数组访问索引,这就是我得到“módulo”这个词的地方。

当我这样做时

if($tipo_dato == 'módulo')
  $tipo_dato = 'modulo';

没有任何反应:(请帮助。

聚苯乙烯。对不起我的英文:(

- 也许这有帮助

$tipo_dato = (@$prop['propiedad_tipo'])?strtolower($tipo[ $prop['propiedad_tipo'] ]):''; 
  echo serialize($tipo_dato); echo '<br>'.serialize('módulo');

结果是s:13:“módulo”; S:7: “模数”;

- 我发现了很大的错误。当我序列化数组“TIPO”时,我用了m&oacute;dulo我把它变成了módulo然后一切正常...... 非常感谢你的帮助

3 个答案:

答案 0 :(得分:0)

使用

if($tipo_dato=='modulo')
    $tipo_dato='modulo';

毫无意义。它检查值是否为模,然后分配模数。将其更改为

if($tipo_dato!='modulo')
    $tipo_dato='modulo';

或将其更改为

if($tipo_dato=='modulo')
     #do some other thing

答案 1 :(得分:0)

发现这对你需要的东西非常有用:

function toASCII( $str )
{
    return strtr(utf8_decode($str), 
        utf8_decode(
        'ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ'),
        'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy');
}

取自How to remove accents and turn letters into "plain" ASCII characters?

然后你可以使用:

$tipo_dato = toASCII($tipo_dato);

答案 2 :(得分:0)

它可能是价值问题,通过数据库sotry来查找$ tipo_dato通过数据库获取的值

   $tipo_dato = (@$prop['propiedad_tipo'])?$tipo[ $prop['propiedad_tipo'] ]:''; 
     echo "$tipo_dato";

我认为它只是交换概念,其中一种方法可以尝试这种简单的代码。        

//initial check the value 
echo "$uid<br>";
echo "$bid";

//after the swaping the value 
$d=$uid;
$uid="$bid";
$bid="$d";

//final outcome
echo "$uid<br>";
 echo "$bid";

  ?>