2017-05-14 27 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謝謝。我編輯它。 –

相關問題