У меня есть строки: 23-65, 123-45, 2-5435, 345-4
Я хочу добавить к ним нули, чтобы все они выглядели как ###-#### (three digits dash four digits): 023-0065, 123-0045, 002-5435, 345-0004
Как я могу сделать это в php?
Спасибо!
Вам нужно будет разделить их, используя
$parts = explode('-', $number);`
затем используйте str_pad функция:
$parts[0] = str_pad($parts[0], 3, "0");
$parts[1] = str_pad($parts[0], 4, "0");
а затем объединить их снова
$number = implode('-', $parts);
В качестве альтернативы вы можете дополнить их, используя vsprintf
:
$number = vsprintf('%03d-%04d', $parts);
Пытаться:
$str = "23-65, 123-45, 2-5435, 345-4";
$numArray = explode(",",$str);
$str_new = "";
foreach($numArray as $nums) {
$nums = explode("-",$nums);
$num1 = str_pad($nums[0], 3, '0', STR_PAD_LEFT);
$num2 = str_pad($nums[1], 4, '0', STR_PAD_LEFT);
$str_new .= $num1."-".$num2.",";
}
$str_new = rtrim($str_new,",");
Выход:
023-0065, 123-0045,0 2-5435, 345-0004