PHP:按另一个数组中的字母顺序对数组进行排序
问题描述:
我正在制作一个小型的hang子手游戏,我想按照实际的字顺序排列人物的猜测;这里是我的代码:PHP:按另一个数组中的字母顺序对数组进行排序
$word = "peach";
$_SESSION['letters'] = str_split($word);
这就是我做的话到一个数组,我想,当正确的字母被添加到阵列中,他们在这个词的顺序进行排序。有什么办法可以做到这一点,或以其他方式我可以写出来吗?感谢您的帮助。
答
我误解了。试试这个:
<?php
$guess = 'reach';
$guess_array = str_split($guess);
$word = 'peach';
$word_array = str_split($word);
$result = '';
foreach($word_array as $letter)
{
if(in_array($letter, $guess_array))
{
$result .= $letter;
}
else
{
$result .= '_';
}
}
echo($result);
// outputs: "_each"
?>
+0
我不希望它按字母顺序排序,我希望按照单词顺序排序 – user2399308
+0
我编辑了我的答案。对不起,我误解了。 @ user2399308 – WildcardSearch
答
我想你可能会错误的。您不需要对数组进行排序。只需用单词中的字母和猜测中的另一个数组来设置数组。然后用这个单词遍历数组,并查看是否在猜测数组中找到了相应的值。就像这样:
$word = "rumplestiltskin";
$letters = str_split($word);
// Assume the user gets at least 6 guesses:
$guesses = array('r', 's', 't', 'l', 'n', 'e');
// Display the letters guessed correctly
foreach ($letters as $letter) {
// Set both to lower case just in case
if (in_array(strtolower($letter), array_map('strtolower', $guesses)) === true) {
echo " $letter ";
}
else {
echo " _ ";
}
}
// Produces: r _ _ _ l e s t _ l t s _ _ n
我不知道你在说什么。你能举一个你想要的例子吗? – Mike
@Mike所以如果我有猜测a,c和h,那么如果这个单词是桃,我会希望它回显为空白,空白,a,c,h(不含逗号)。 – user2399308
我的意思是把前三个字母放在一个单独的顺序中,对不起 – user2399308