代码之家  ›  专栏  ›  技术社区  ›  lewis4u

如何通过for循环从mb\u字符串中获取字符?

  •  0
  • lewis4u  · 技术社区  · 7 年前

    $guessString = 'KUĆA';
    $usedLetters = ['Ć'];
    $userLetter = 'Ć';
    
    for ($i = 0; $i < mb_strlen($guessString); $i++) {
        $temp = $guessString[$i];
        if (in_array($guessString[$i], $usedLetters)) {
            echo $guessString[$i];
        } else {
            echo ' _ ';
        }
    }
    

    我试图比较$userLetter(通过GET链接发送)

    但通过调试:

    enter image description here

    我终于发现它读错了字。

    "?" "Ć"

    所以我的问题是:如何使用for循环($guessString[$i])获得正确的字符?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Joni    7 年前

    你的问题是

    $guessString[$i]
    

    索引运算符不支持多字节,因此它返回 $i 第 字节

    $temp = mb_substr($guessString, $i, 1);
    

    当然,你应该使用 $temp 你用过的地方 $guessString[$i]

    推荐文章