数组键与字符串字符的比较


Array Keys Comparison With String Characters

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

$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*

如何实现最终输出?

循环字符串并使用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*

Codepad示例

我知道我有点晚了,但这也能奏效:

$string = "black"; 
$array = array(0=>"c",
               1=>"b") ;
echo preg_replace("/[^". implode($array) ."]/", "*", $string);  

输出:b**c*