Tôi đã lấy bản gốc 'sửa', xóa mã gỡ lỗi và mã không cần thiết khác, đã sửa đổi nó để nó hoạt động với bất kỳ số lượng ký tự nào. Ví dụ, Hy Lạp chỉ có 24 ký tự.
function toAlpha[$number, $alphabet]
{
$count = count[$alphabet];
if [$number 0] {
$modulo = [$number - 1] % $count;
$alpha = $alphabet[$modulo] . $alpha;
$number = floor[[[$number - $modulo] / $count]];
}
return $alpha;
}
toAlpha[45,range['a','z']];
Và đây là một số ví dụ về phạm vi:
// lower greek
$range = ['α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω'];
// upper greek
$range = ['Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω'];
// georgian
$range = ['ჵ' => 10000, 'ჰ' => 9000, 'ჯ' => 8000, 'ჴ' => 7000, 'ხ' => 6000, 'ჭ' => 5000, 'წ' => 4000, 'ძ' => 3000, 'ც' => 2000, 'ჩ' => 1000, 'შ' => 900, 'ყ' => 800, 'ღ' => 700, 'ქ' => 600, 'ფ' => 500, 'ჳ' => 400, 'ტ' => 300, 'ს' => 200, 'რ' => 100, 'ჟ' => 90, 'პ' => 80, 'ო' => 70, 'ჲ' => 60, 'ნ' => 50, 'მ' => 40, 'ლ' => 30, 'კ' => 20, 'ი' => 10, 'თ' => 9, 'ჱ' => 8, 'ზ' => 7, 'ვ' => 6, 'ე' => 5, 'დ' => 4, 'გ' => 3, 'ბ' => 2, 'ა' => 1];
function number_to_alphabet[$number] {
$number = intval[$number];
if [$number = $level ] {
$char = $string[$length - $level];
$c = ord[$char] - 64;
$number += $c * [26 ** [$level-1]];
$level++;
}
return $number;
}
Nhập chế độ FullScreenen EXIT Mode FullScreen
11 năm trước
Hi!
Tôi muốn chuyển đổi số thành các chữ cái, theo cách này: a = 0, b = 1, c = 2 ... z = 25, aa = 26, ab = 27, v.v. [một cái gì đó giống như tên của các cột trong MS Excel]. Làm thế nào để làm điều đó? Cảm ơn rất nhiều!
[something like the names of columns in MS Excel]. How to do that? Thanks a lot!
Câu trả lời được đề xuất
tốt đẹp và dễ dàng :-]
$ alpha = mảng ['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'];
$ i = 5; echo $ alpha [$ i]; // sẽ xuất ra chữ E
echo $alpha[$i]; //will output letter E
Nhảy để đăng
Đây là Base26!
Nhảy để đăng
Đây là Base26!
Tất cả 6 câu trả lời 0 Newbie Poster tốt đẹp và dễ dàng :-] $ alpha = mảng ['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']; $ i = 5; echo $ alpha [$ i]; // sẽ xuất ra chữ E
11 năm trước
Tôi muốn chuyển đổi số thành các chữ cái, theo cách này: a = 0, b = 1, c = 2 ... z = 25, aa = 26, ab = 27, v.v. [một cái gì đó giống như tên của các cột trong MS Excel]. Làm thế nào để làm điều đó? Cảm ơn rất nhiều!
echo $alpha[$i]; //will output letter E
Câu trả lời được đề xuất
11 năm trướcfunction getColNo[$colLetters]{
$limit = 5; //apply max no. of characters
$colLetters = strtoupper[$colLetters]; //change to uppercase for easy char to integer conversion
$strlen = strlen[$colLetters]; //get length of col string
if[$strlen > $limit]return "Column too long!"; //may catch out multibyte chars in first pass
preg_match["/^[A-Z]+$/",$colLetters,$matches]; //check valid chars
if[!$matches]return "Invalid characters!"; //should catch any remaining multibyte chars or empty string, numbers, symbols
$it = 0; $vals = 0; //just start off the vars
for[$i=$strlen-1;$i>-1;$i--]{ //countdown - add values from righthand side
$vals += [ord[$colLetters[$i]] - 64 ] * pow[26,$it]; //cumulate letter value
$it++; //simple counter
}
return $vals - 1; //this is the answer
}
//sample usage:
echo getColNo["BX"];
Tôi muốn chuyển đổi số thành các chữ cái, theo cách này: a = 0, b = 1, c = 2 ... z = 25, aa = 26, ab = 27, v.v. [một cái gì đó giống như tên của các cột trong MS Excel]. Làm thế nào để làm điều đó? Cảm ơn rất nhiều!
Câu trả lời được đề xuất
tốt đẹp và dễ dàng :-]
11 năm trước
Tôi muốn chuyển đổi số thành các chữ cái, theo cách này: a = 0, b = 1, c = 2 ... z = 25, aa = 26, ab = 27, v.v. [một cái gì đó giống như tên của các cột trong MS Excel]. Làm thế nào để làm điều đó? Cảm ơn rất nhiều!
For both: from letters to numbers and from numbers to letters.
Câu trả lời được đề xuất
11 năm trước Tôi muốn chuyển đổi số thành các chữ cái, theo cách này: a = 0, b = 1, c = 2 ... z = 25, aa = 26, ab = 27, v.v. [một cái gì đó giống như tên của các cột trong MS Excel]. Làm thế nào để làm điều đó? Cảm ơn rất nhiều!
If you want numbers to letters, I reckon you can backwards engineer my solution and do it yourself.
I shouldn't have posted the whole solution anyway, bit previous of me. Sorry folks.
Câu trả lời được đề xuất
tốt đẹp và dễ dàng :-]
$ alpha = mảng ['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'];