首页  >  文章  >  后端开发  >  PHP学习之数字序数和字母序数的相互转化示例

PHP学习之数字序数和字母序数的相互转化示例

little bottle
little bottle转载
2019-04-25 13:34:382272浏览

本篇文章小编将和大家分享一下如何用PHP实现数字序数和字母序数的相互转化的代码示例,具有一定的参考价值,感兴趣的朋友可以看看,希望对你有所启发。

数从1开始  即 A=1

/**
   * 数字序列转字母序列
   * @param $int
   * @param int $start
   * @return string|bool
   */
  function int_to_chr_1($int, $start = 64)
  {
    if (!is_int($int) || $int <= 0) return false;
    $str = &#39;&#39;;
    if (floor($int / 26) > 0) {
      $str .= int_to_chr_1((int)floor($int / 26));
    }
    return $str . chr($int % 26 + $start);
  }

  /**
   * 数字序列转字母序列
   * @param $int
   * @return string|bool
   */
  function int_to_chr_2($int)
  {
    if (!is_int($int) || $int <= 0) return false;

    $array = array(&#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;, &#39;E&#39;, &#39;F&#39;, &#39;G&#39;, &#39;H&#39;, &#39;I&#39;, &#39;J&#39;, &#39;K&#39;, &#39;L&#39;, &#39;M&#39;, &#39;N&#39;, &#39;O&#39;, &#39;P&#39;, &#39;Q&#39;, &#39;R&#39;, &#39;S&#39;, &#39;T&#39;, &#39;U&#39;, &#39;V&#39;, &#39;W&#39;, &#39;X&#39;, &#39;Y&#39;, &#39;Z&#39;);
    $str = &#39;&#39;;
    if ($int > 26) {
      $str .= int_to_chr_2((int)floor($int / 26));
      $str .= $array[$int % 26 - 1];
      return $str;
    } else {
      return $array[$int - 1];
    }
  }

  /**
   * 字母序列转数字序列
   * @param $char
   * @return int|bool
   */
  function chr_to_int($char)
  {
    //检测字符串是否全字母
    $regex = &#39;/^[a-zA-Z]+$/i&#39;;

    if (!preg_match($regex, $char)) return false;

    $int = 0;
    $char = strtoupper($char);
    $array = array(&#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;, &#39;E&#39;, &#39;F&#39;, &#39;G&#39;, &#39;H&#39;, &#39;I&#39;, &#39;J&#39;, &#39;K&#39;, &#39;L&#39;, &#39;M&#39;, &#39;N&#39;, &#39;O&#39;, &#39;P&#39;, &#39;Q&#39;, &#39;R&#39;, &#39;S&#39;, &#39;T&#39;, &#39;U&#39;, &#39;V&#39;, &#39;W&#39;, &#39;X&#39;, &#39;Y&#39;, &#39;Z&#39;);
    $len = strlen($char);
    for ($i = 0; $i < $len; $i++) {
      $index = array_search($char[$i], $array);
      $int += ($index + 1) * pow(26, $len - $i - 1);
    }
    return $int;
  }


  echo &#39;<br>&#39;, int_to_chr_1(8848);
  echo &#39;<br>&#39;, int_to_chr_2(8848);
  echo &#39;<br>&#39;, chr_to_int(&#39;MBH&#39;);

相关教程:PHP视频教程

以上是PHP学习之数字序数和字母序数的相互转化示例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:cnblogs.com。如有侵权,请联系admin@php.cn删除