当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2020-04-05 17:29:43 浏览: 评论:0 

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

序数从1开始 即 A=1

  1. /** 
  2.  
  3.    * 数字序列转字母序列 
  4.  
  5.    * @param $int 
  6.  
  7.    * @param int $start 
  8.  
  9.    * @return string|bool 
  10.  
  11.    */ 
  12.  
  13.   function int_to_chr_1($int$start = 64) 
  14.  
  15.   { 
  16.  
  17.     if (!is_int($int) || $int <= 0) return false; 
  18.  
  19.     $str = ''
  20.  
  21.     if (floor($int / 26) > 0) { 
  22.  
  23.       $str .= int_to_chr_1((int)floor($int / 26)); 
  24.  
  25.     } 
  26.  
  27.     return $str . chr($int % 26 + $start); 
  28.  
  29.   } 
  30.  
  31.   
  32.  
  33.   /** 
  34.  
  35.    * 数字序列转字母序列 
  36.  
  37.    * @param $int 
  38.  
  39.    * @return string|bool 
  40.  
  41.    */ 
  42.  
  43.   function int_to_chr_2($int
  44.  
  45.   { 
  46.  
  47.     if (!is_int($int) || $int <= 0) return false; 
  48.  
  49.   
  50.  
  51.     $array = array('A''B''C''D''E''F''G''H''I''J''K''L''M''N''O''P''Q''R''S''T''U''V''W''X''Y''Z'); 
  52.  
  53.     $str = ''
  54.  
  55.     if ($int > 26) { 
  56.  
  57.       $str .= int_to_chr_2((int)floor($int / 26)); 
  58.  
  59.       $str .= $array[$int % 26 - 1]; 
  60.  
  61.       return $str
  62.  
  63.     } else { 
  64.  
  65.       return $array[$int - 1]; 
  66.  
  67.     } 
  68.  
  69.   } 
  70.  
  71.   
  72.  
  73.   /** 
  74.  
  75.    * 字母序列转数字序列 
  76.  
  77.    * @param $char 
  78.  
  79.    * @return int|bool 
  80.  
  81.    */ 
  82.  
  83.   function chr_to_int($char
  84.  
  85.   { 
  86.  
  87.     //检测字符串是否全字母 
  88.  
  89.     $regex = '/^[a-zA-Z]+$/i'
  90.  
  91.   
  92.  
  93.     if (!preg_match($regex$char)) return false; 
  94.  
  95.   
  96.  
  97.     $int = 0; 
  98.  
  99.     $char = strtoupper($char); 
  100.  
  101.     $array = array('A''B''C''D''E''F''G''H''I''J''K''L''M''N''O''P''Q''R''S''T''U''V''W''X''Y''Z'); 
  102.  
  103.     $len = strlen($char); 
  104.  
  105.     for ($i = 0; $i < $len$i++) { 
  106.  
  107.       $index = array_search($char[$i], $array); 
  108.  
  109.       $int += ($index + 1) * pow(26, $len - $i - 1); 
  110.  
  111.     } 
  112.  
  113.     return $int
  114.  
  115.   } 
  116.  
  117.   
  118. //phpfensi.com 
  119.   
  120.  
  121.   echo '<br>', int_to_chr_1(8848); 
  122.  
  123.   echo '<br>', int_to_chr_2(8848); 
  124.  
  125.   echo '<br>', chr_to_int('MBH'); 

Tags: PHP数字序数

分享到: