使用以下代码:
$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链接发送) $ guessString中存在。
但是通过调试:
我终于看到它没有正确读取字符。
它得到"?"
而不是"Ć"
所以我的问题是:如何通过for循环($ guessString [$ i])获得正确的字符?
答案 0 :(得分:1)
您的问题在于
PT30D
索引运算符不支持多字节,因此它返回字符串的第first_names = {d["first_name"] for d in data}
个 byte 。解决此问题的一种方法是使用mb_substr:
$guessString[$i]
当然,您应该在使用$i
的任何地方使用$temp = mb_substr($guessString, $i, 1);
。