我正在尝试创建一个PHP应用程序来计算吉阿特里亚。吉阿特里亚语是一种秘密语言,它将单词转化为数字。我用的是没有复写字母的单词。
有用的词语:
不起作用的词:
/**
* English Gematria Values
*
* @return array $array An array of key value pairs
*/
function english_values() {
$values = array(
'a' => 6,
'b' => 12,
'c' => 18,
'd' => 24,
'e' => 30,
'f' => 36,
'g' => 42,
'h' => 48,
'i' => 54,
'j' => 60,
'k' => 66,
'l' => 72,
'm' => 78,
'n' => 84,
'o' => 90,
'p' => 96,
'q' => 102,
'r' => 108,
's' => 114,
't' => 120,
'u' => 126,
'v' => 132,
'w' => 138,
'x' => 144,
'y' => 150,
'z' => 156,
);
return $values;
}
function calculator( $word ) {
$split = array_flip( str_split( $word ) );
$english = array_intersect_key( english_values(), $split );
return $english;
}
print_r( calculator( 'tesla ') );
echo "</br></br>";
print_r( calculator( 'monsanto ') );产出如下:
阵列( => 6 e => 30 l => 72 s => 114 t => 120 ) 阵列( => 6 m => 78 n => 84 o => 90 s => 114 t => 120 )
你可以看到特斯拉能翻阅每封信。但是孟山都错过了最后一个o,所以我不可能计算出一个正确的总数。
我也希望这些字母按照单词的顺序排列,这样特斯拉就能输出:
阵列(t => 120 e => 30 s => 114 l => 72 a => 6)
我可能使用了错误的PHP函数来处理这个问题,所以我会在正确的方向上指定任何帮助。我有段时间没编码了,所以我有点生疏了。我尝试了多个PHP函数,但这似乎使我最接近我需要做的事情。谢谢。
编辑:我也理解为什么重复字母不显示是因为不能有重复的键。所以我想我是在做这件事
发布于 2016-11-20 14:00:59
希望这能让你前进:
print_r(encodeWord('monsanto'));
function encodeWord($word) {
for ($i = 0; $i < strlen($word); $i++) {
$encodedWord[] = [
'letter' => $word[$i],
'convertedLetter' => convertLetter($word[$i]),
];
}
return $encodedWord;
}
function convertLetter($letter) {
$values = [
'a' => 6,
'b' => 12,
'c' => 18,
'd' => 24,
'e' => 30,
'f' => 36,
'g' => 42,
'h' => 48,
'i' => 54,
'j' => 60,
'k' => 66,
'l' => 72,
'm' => 78,
'n' => 84,
'o' => 90,
'p' => 96,
'q' => 102,
'r' => 108,
's' => 114,
't' => 120,
'u' => 126,
'v' => 132,
'w' => 138,
'x' => 144,
'y' => 150,
'z' => 156,
];
return $values[$letter];
}发布于 2016-11-20 14:12:49
对于双字母,似乎您所使用的函数将无法看到它们。也许你应该发挥你自己的作用,就像盖特扎特刚才回答的那样。
要使字母以与给定单词相同的顺序显示,只需在array_intersect_key()调用中切换参数即可。因此:
$english = array_intersect_key( $split , english_values() ); 而不是
$english = array_intersect_key( english_values(), $split );https://stackoverflow.com/questions/40704726
复制相似问题