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

问题描述:

我正在制作一个小型的hang子手游戏,我想按照实际的字顺序排列人物的猜测;这里是我的代码:PHP:按另一个数组中的字母顺序对数组进行排序

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

这就是我做的话到一个数组,我想,当正确的字母被添加到阵列中,他们在这个词的顺序进行排序。有什么办法可以做到这一点,或以其他方式我可以写出来吗?感谢您的帮助。

+1

我不知道你在说什么。你能举一个你想要的例子吗? – Mike

+0

@Mike所以如果我有猜测a,c和h,那么如果这个单词是桃,我会希望它回显为空白,空白,a,c,h(不含逗号)。 – user2399308

+0

我的意思是把前三个字母放在一个单独的顺序中,对不起 – user2399308

我误解了。试试这个:

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