我有一个字符串,还有一个数组,其中包含以下两个键:
$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*
如何实现最终输出?
答案 0 :(得分: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*
答案 1 :(得分:0)
我知道我有点迟了,但这也可以解决问题:
$string = "black";
$array = array(0=>"c",
1=>"b") ;
echo preg_replace("/[^". implode($array) ."]/", "*", $string);
输出:b**c*