2011-06-21 36 views
1

在我的列表頁面中,我必須顯示八位字符長度字符串中的記錄ID。這需要是字母和數字的組合。前4個字符需要是字母,後4個字符需要是數字。爲了單獨查看目的,我需要以這種格式顯示記錄ID。如何在8位字符長度字符串中顯示我的ID字段

如果記錄ID少於4位,則在其前面添加前綴0

例如:

記錄#2需要顯示像AAAA0002
記錄#10001需要像AAAB0001

4個字母的第一部分以A, 開頭,如果記錄ID有4位以上的數字,則需要按照相同的方式增加相應的字符。

任何人都可以告訴我你的寶貴意見嗎?

+1

請張貼更多示例。目前還不清楚你想要什麼。 –

+3

將'10001'映射到'AAAB0001'的規則是什麼? – Gumbo

+2

'AAAB'是什麼意思?爲什麼'A'?爲什麼'1'被'B'取代? –

回答

2

好的,我希望我能理解它:

您有記錄ID可以由最大。 8位數字。如果身份證少於8位數字,則應預先加上'0'。您可以通過使用sprintf[docs]這樣做:

// $id is 10001 
$id = sprintf('%08d', $id); // 00010001 

那麼你一定要到第一四位數字轉換成字母,其中(好像)0=>A, 1=>B,...。你可以用range[docs]創建這樣的映射:

$char_map = range('A', 'J'); // array(0 => A, 1 =>B, ..., 9 => J); 

要轉換的數字,你可以使用strtr[docs],並且只得到前四位,substr[docs]

$id = strtr(substr($id, 0, 4), $char_map) . substr($id, 4); // AAAB0001 

這裏是一個DEMO

+0

做得非常好,優秀的代碼! – Melsi

+0

謝謝菲利克斯,你給了我一個很好的代碼。讓我在我的場景中檢查這種代碼,並讓你知道。再次感謝您的寶貴提示。 – seravee

相關問題