【发布时间】:2010-01-13 14:22:47
【问题描述】:
我正在尝试做一些类似于 hangman 的事情,当你猜测一个字母时,它会用字母的内容替换下划线。我想出了一个方法,但它似乎效率很低,我想知道是否有更好的方法。这是我所拥有的 -
<?
$word = 'ball';
$lettersGuessed = array('b','a');
echo str_replace( $lettersGuessed , '_' , $word ); // __ll
echo '<br>';
$wordArray = str_split ( $word );
foreach ( $wordArray as $letterCheck )
{
if ( in_array( $letterCheck, $lettersGuessed ) )
{
$finalWord .= $letterCheck;
} else {
$finalWord .= '_';
}
}
echo $finalWord; // ba__
?>
str_replace 与我想要的相反。我想要$finalWord 的值是多少,而不必通过循环来获得我想要的结果。
【问题讨论】:
-
PHP中是否存在正则表达式?如果是这样,您可以替换所有出现或 . (可以是任何字符)带有 _。在 Perl 中,它会像 thist 一样:s/./_/g
标签: php str-replace strsplit