PHP学习之数字序数和字母序数的相互转化示例
发布:smiling 来源: PHP粉丝网 添加日期:2020-04-05 17:29:43 浏览: 评论:0
本篇文章小编将和大家分享一下如何用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 = '';
- 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('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');
- $str = '';
- 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 = '/^[a-zA-Z]+$/i';
- if (!preg_match($regex, $char)) return false;
- $int = 0;
- $char = strtoupper($char);
- $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');
- $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;
- }
- //phpfensi.com
- echo '<br>', int_to_chr_1(8848);
- echo '<br>', int_to_chr_2(8848);
- echo '<br>', chr_to_int('MBH');
Tags: PHP数字序数
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)