Как сделать одинарную / двойную строку в минимум пять символов в php? - PullRequest
0 голосов
/ 25 июля 2011

Для моего сайта мне нужно сделать следующее

$value = "1|22";    
$explode = explode("|",$value);    
$a = $explode[0];    
$b = $explode[1]; 

Это вернет a и b как 1 и 22, как и ожидалось. Но мне нужно, чтобы они возвращали $ a как 00001 и $ b как 00022. Поэтому, если они содержат менее 5 символов, я хочу добавить к нему префикс 0, чтобы сделать его пятизначным числом. Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 25 июля 2011
$a = str_pad($explode[0], 5, '0');
$b = str_pad($explode[1], 5, '0');

С PHP5.3 вы можете добавить 0 таким образом

$explode = array_map (function ($entry) {
    return str_pad($entry, 5, '0');
}, $explode);

и присвоить

list($a, $b) = $explode;

Во всех (все еще php5.3)

list($a, $b) = array_map (function ($entry) {
    return str_pad($entry, 5, '0');
}, explode('|', $value));
0 голосов
/ 25 июля 2011

Другой метод.

$value = "1|22";    
$explode = explode("|",$value);    
$a = sprintf( '%1$05d', $explode[0] );    
$b = sprintf( '%1$05d', $explode[1] );
...