首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用PHP计算出三叉神经的总数?

如何用PHP计算出三叉神经的总数?
EN

Stack Overflow用户
提问于 2016-11-20 13:44:39
回答 2查看 192关注 0票数 1

我正在尝试创建一个PHP应用程序来计算吉阿特里亚。吉阿特里亚语是一种秘密语言,它将单词转化为数字。我用的是没有复写字母的单词。

有用的词语:

  • 特斯拉
  • abcde

不起作用的词:

  • aaa (有多个a)
  • 孟山都(有2度)
代码语言:javascript
复制
  /**
  * 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函数,但这似乎使我最接近我需要做的事情。谢谢。

编辑:我也理解为什么重复字母不显示是因为不能有重复的键。所以我想我是在做这件事

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-20 14:00:59

希望这能让你前进:

代码语言:javascript
复制
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];
}
票数 0
EN

Stack Overflow用户

发布于 2016-11-20 14:12:49

对于双字母,似乎您所使用的函数将无法看到它们。也许你应该发挥你自己的作用,就像盖特扎特刚才回答的那样。

要使字母以与给定单词相同的顺序显示,只需在array_intersect_key()调用中切换参数即可。因此:

代码语言:javascript
复制
$english = array_intersect_key( $split , english_values() ); 

而不是

代码语言:javascript
复制
$english = array_intersect_key( english_values(), $split );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40704726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档