我有一个字符串,也有一个数组有两个键如下:
$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*