Добавление двух чисел в php и сохранение ведущих нулей

Мне нужно добавить числа в php, не меняя формат чисел, как показано ниже.

$a = "001"; $b = "5"; $c = $a+$b; 

Теперь результат получается как «6», но мне нужно «006», если $a – «01», тогда результат должен быть «06».

благодаря

С технической точки зрения, $a и $b в вашем примере являются строками – когда вы используете на них оператор сложения, они преобразуются в целые числа, которые не могут удерживать ведущие нули. Более подробная информация о преобразовании строк в число содержится в руководстве

Что-то вроде этого сделало бы это (предполагая положительные целые строки с ведущими нулями)

 #figure out how long the result should be $len=max(strlen($a), strlen($b)); #pad the sum to match that length $c=str_pad($a+$b, $len, '0', STR_PAD_LEFT); 

Если вы всегда знаете, как долго должна быть строка, вы можете использовать sprintf , например

 $c=sprintf('%03d', $a+$b); 

Здесь % вводит местозаполнитель, 03 сообщает, что мы хотим, чтобы нулевой пробел заполнял не менее 3 цифр, а d сообщает, что мы форматируем целое число.

Надеюсь, это поможет вам:

 <?php $a="001"; $b="5"; $l=max(strlen($a),strlen($b)); $c=str_pad($a+$b, $l,"0", STR_PAD_LEFT); echo $c; ?> 

Для общего случая. Ваш код должен выглядеть так.

 $a = someFormat($original_a); $b = someFormat2($original_b); // $b has different format. $c = someFormat($a + $b); 

Или вам нужно написать formatRecognition.

 $a = getValueA(); $b = getValueB(); $c = someFormat(formatRecognition($a), $a + $b);