-1

我有一个字符串,也有一个带有两个键的数组,如下所示:

$string = "black"; // a string that has 5 characters 

$array = array(0=>"c", // an array that has two keys "c" and "b"
               1=>"b") 

要求:

我需要一个循环来迭代数组的第一个键值并将其与字符串的所有字符进行比较,然后将数组的第二个键值与字符串的所有字符进行比较。

如果键与字符串的字符匹配,则打印字符串字符,否则打印星号 (*)。像这样的东西:

if($string[$character] == $array[$key]){

echo $string[$character];

      }
         else{
                echo "*";

                            }
//So in this case, Final Output should be:
// Final Output = b**c*

我怎样才能实现最终输出

4

2 回答 2

1

循环字符串并使用in_array()

$string = "black"; // a string that has 5 characters 
$array = array(0=>"c", // an array that has two keys "c" and "b"
               1=>"b");

for($i=0; $i<strlen($string); $i++){

    if(in_array($string[$i], $array)){
        echo $string[$i];
    } else {
        echo '*';
    }

}

// b**c*

键盘示例

于 2013-03-09T09:33:15.070 回答
0

我知道我有点晚了,但这也可以解决问题:

$string = "black"; 
$array = array(0=>"c",
               1=>"b") ;

echo preg_replace("/[^". implode($array) ."]/", "*", $string);  

输出:b**c*

于 2013-03-09T09:36:12.307 回答