PHP:按照另一个数组中的字母顺序对数组进行排序

时间:2014-01-10 02:12:23

标签: php sorting

我正在制作一个小刽子手游戏,我想按照实际的单词对人做出的猜测进行排序;这是我的代码:

$word = "peach";
$_SESSION['letters'] = str_split($word);

这就是我将单词变成数组的地方,我希望当正确的字母添加到数组中时,它们按照单词的顺序排序。有什么方法可以做到这一点,或者我可以用其他方式写出来吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

我误解了。试试这个:

<?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"
?>

答案 1 :(得分:1)

我认为你可能错了。您不需要对数组进行排序。只需设置一个数组,其中包含单词中的字母和另一个带有猜测的数组。然后使用单词循环遍历数组,并查看是否在猜测数组中找到相应的值。像这样:

$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