2015-04-14 163 views
0

我有數字字符串並將其轉換爲字母。將數字轉換爲字母

$arr = str_split('12345'); 
Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
    [3] => 4 
    [4] => 5 
) 

現在我想轉換1 = A,2 = B,...

回答

2
我能想到的,現在

最簡單的辦法:

$arr = str_split('12345'); 
$arr2 = str_split('abcdefghijklmnopqrstuvwxyz'); 

foreach($arr as &$digit) 
    $digit = $arr2[$digit-1]; 

注意$digit傳遞給通過引用循環使用&符號。這意味着當您操作$digit時,$arr中的相應數組條目也將被更改。

+0

此代碼在'0'和'。'之間不起作用。 – khizar123456

+0

你是什麼意思? '0'應該翻譯成'.'? – treegarden

+0

像這樣12340.55 – khizar123456

0

通過使用base_convert,我做了這個:

$arr = str_split('12345'); 

foreach($arr as $something){ 
    if($something==1){ 
     $value=$something*10; 
    }else{ 
     $value++; 
    } 
    echo base_convert($value, 10, 36); 
} 

可能不是最好的解決方案,但它是一個解決方案。我會解釋我在這裏做了什麼。

在文檔它說:

位數與鹼高於10將與字母az來表示,即:a表示10個數字位,b表示11和z意思35

於是我就確信1 = 10,2 = 11,3 = 12,4 = 13,5 = 14等等

結果: ABCDE

0

嘗試讓他們來回他們的ASCII碼如下:

<?php 
$arr = str_split('12345'); 
$str = chr($arr[0]+64); 
echo ("str=".$str."\n"); 
?> 
+0

您需要在foreach循環中執行此操作。 – Loko

+0

是的,它只是一個示例代碼。 –