2017-05-14 53 views
-1
$string = "abcfght"; 
$shift = 3; 
$shiftedString = ""; 

for ($i = 0; $i < strlen($string); $i++) 
{ 
    $ascii = ord($string[$i]); 
    $shiftedChar = chr($ascii-$shift); 

    $shiftedString .= $shiftedChar; 
} 

echo $shiftedString; 

在上述代码B移位-3所以输出根据ASCI表是显示,但我的期望是,输出 “Z”如何将字符只移动到Z或Z到使用PHP?

回答

0

尝试此,检查live demo

$string = "abcfght"; 
$shift = 3; 
$chars = str_split($string); 
$arr = array_map(function($v){ 
    $shift = ord($v) -3; 
    echo $shift."\n"; 
    return $shift < 97 ? chr($shift + 26) : chr($shift); 
}, $chars); 
echo implode('', $arr); 
+0

@RiggsFolly谢谢。我编辑它。 –

相关问题