一个初学者,几周来我一直在忙着$let_arr = ["a" => "1", "b" => "2",];
,str_split
,explode
以及其他一切。无法理解。
可以帮助我的Ayone?也许这些见解会对我有所帮助。
答案 0 :(得分:1)
字母实际上是数字 - 它们具有序数ASCII值,可以由ord()
检索。例如,ord('a')
为97.因此,您不需要数组作为查找表。
首先,让我们从字符串中删除所有非字母字符,并将所有字符转换为小写字母(从ord('a') != ord('A')
开始):
$str = 'bababa ba';
$letters = preg_replace('~[^a-z]~i', '', $str); // remove all non-alpha characters
$letters = strtolower($letters); // convert to lowercase
现在让我们将单个字母加起来:
$sum = 0;
for ($i = 0; $i < strlen($letters); $i++)
{
$sum += ord($letters[$i]) - 96; // 96 == ord('a') - 1
}
最后,我们必须得到数字总和:
$ds = 0;
while ($sum != 0)
{
$ds += $sum % 10; // extract and add last digit
$sum = (int) ($sum / 10); // remove last digit
}
现在,$ds
将包含您的结果。我希望,这就是你要求的。
答案 1 :(得分:0)
要找出a = 1和b = 2并且...这个简单的形式/功能: 你可以尝试这个&#34;简单&#34;代码在这里:http://wistudat.be/try/calcuword.php
<form action="./calcuword.php" onsubmit="" method="post">
<b>Enter your word: </b>
<br>
<input type="text" name="word">
<br>
<input type="submit" value="SUBMIT">
</form>
<p style="color:red;">
<?php
$word= filter_var($_POST['word'], FILTER_SANITIZE_STRING);
echo "String : ".$word ." to integer : ";
function CtoI($alfa)
{
$array = array_flip(range(a, z));
return $array[$alfa] + 1;
}
$chars = str_split($word);
foreach($chars as $char){
if($word){
echo CtoI($char);
if ($char === end($chars)){
echo "=";
}
else{
echo "+";
}
} //End if($word)
} //End foreach
?>