Hi Tom.
Ich glaube, das substr() die schnellste Lösung ist.
Aber das habe ich nicht wirklich getestet, sondern nur mal eben mit meinen vorhandenen Listern[1] und derselben DB-Tabelle ausprobiert.
Ich hab auch gerade mal ausprobiert. substr war am schnellsten, danach str_pad und dann sprintf. Allerdings sind die Unterschiede bei mir so gering, daß sie erst ab mehreren Millionen Umwandlungen am Stück einen merklichen Effekt haben. Falls Roland nicht vorhat, ähnlich große Datensätze zu beackern, dürfte diese "Optimierung" ziemlich unwichtig sein. Da finden sich sicher wichtigere Stellen im Skript. ;-)