2011-12-30 106 views
1

我有一個單一的字母代碼串像
MGCLGNSKTEDQRNEEKAQREAMGCLGNSKTEDQRNEEKAQREAMGCLGNSKTEDQRNEEKAQREA
我想在字符串中的每個字母打印序列號。在字符串的每個字母上顯示序列號。 PHP

等預先

123456789101112131415161718192021222324252627282930 
MGCLGNSKTED Q R N E E K A Q R E A M G C L G N S K T 

感謝。

+0

你的意思是一個連續的數字? 1,2,3 ...?輸出純文本還是HTML? – 2011-12-30 11:07:22

回答

0

如果我給你正確的,那麼這就是你所需要的(注意,可能會有小的失誤,測試):

function printSerial($string){ 
    $map = array(
     'M' => 1, 
     'G' => 2, 
     'C' => 3, 
     // ... please continue 
    ); 
    $output = ''; 
    for($i=0; $i<strlen($string); $i++){ 
     $output .= $map[$string[$i]]; 
    } 
    echo $output; 
} 
2

一個很好的藉口,瞭解一些花哨的PHP函數:

<?php 

$single_letter_codes = 'MGCLGNSKTEDQRNEEKAQREAMGCLGNSKTEDQRNEEKAQREAMGCLGNSKTEDQRNEEKAQREA'; 

foreach(range(1, strlen($single_letter_codes)) as $number){ 
    echo $number; 
} 
echo PHP_EOL; 

foreach(str_split($single_letter_codes) as $index => $letter){ 
    // Changed ' ' to '·' to make it visible 
    echo str_pad($letter, strlen($index+1), '·', STR_PAD_LEFT); 
} 
echo PHP_EOL; 

假設:

  • 單字節字符串
  • 右對齊,如:

    10 
    A 
    

而我們得到:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 
MGCLGNSKT·E·D·Q·R·N·E·E·K·A·Q·R·E·A·M·G·C·L·G·N·S·K·T·E·D·Q·R·N·E·E·K·A·Q·R·E·A·M·G·C·L·G·N·S·K·T·E·D·Q·R·N·E·E·K·A·Q·R·E·A 

更新:爲了顯示這是HTML,你需要執行一個固定寬度的字體。最簡單的方法是將所有內容都包含在<pre></pre>標記集中。

我將離開作爲練習,爲讀者如何使用空格而不是點。

+0

謝謝,工作,但如果字母O和P都存在,字符串的顯示會移到右側。 – 2011-12-30 11:58:14

+0

這不是事實。你是problaby不生成純文本。我問了一個小時前,但從來沒有得到答案:) – 2011-12-30 12:10:18

+0

對不起,遲交回復。即時消息生成輸出的HTML。而德瑟不是點。需要空間。 – 2011-12-30 19:14:57

0

也許這可以幫助...

<?php 

$str = 'MGCLGNSKTEDQRNEEKAQREAMGCLGNSKTEDQRNEEKAQREAMGCLGNSKTEDQRNEEKAQREA'; 
$len = strlen($str); 
$nums = ''; 
$lets = ''; 
for ($i = 1; $i <= $len; $i++) { 
    $nums .= $i; 
    $lets .= sprintf('% ' . strlen($i) . 's', $str[$i - 1]); 
} 
echo $nums . "\n" . $lets; 

你會得到

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 
MGCLGNSKT E D Q R N E E K A Q R E A M G C L G N S K T E D Q R N E E K A Q R E A M G C L G N S K T E D Q R N E E K A Q R E A 
相關問題