php找不到序数,PHP学习之数字序数和字母序数的相互转化示例

本篇文章小编将和大家分享一下如何用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;

}

echo '
', int_to_chr_1(8848);

echo '
', int_to_chr_2(8848);

echo '
', chr_to_int('MBH');

相关教程:PHP视频教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值