У меня довольно простой вопрос PHP, но я не уверен, как это сделать.
Я хочу округлить до сотен или тысяч в зависимости от значения, возвращаемого базой данных.
Вот несколько примеров того, что мне нужно:
и т.д.
Я хотел бы создать автоматическую функцию для этого, в соответствии с переданным значением.
Благодаря!
Окончательная реализация , вдохновленная ответом Шаункака и комментариями SO. Спасибо за эти бюстгальтеры. живая демонстрация
<?php $val = 10241.67; if($val >= 1000) { echo ceil($val / 1000) * 1000; } else { $length = strlen(ceil($val)); $times = str_pad('1', $length, "0"); echo ceil($val / $times) * $times; }
<?php $value = 14; $len = strlen($value); $div = str_pad('1', $len, "0"); echo ceil($value / $div) * $div; ?>
Вот мои 2 цента:
$v = 11; if(strlen($v)<4) { $v = str_pad((int)(substr($v, 0, 1)+1), strlen($v), 0, STR_PAD_RIGHT); } else { $v = substr($v, 0, -4) . str_pad((int)(substr($v, -4, -3)+1), 4, 0, STR_PAD_RIGHT); }
Попробуй это
<?php $input = 10241; //this will be your input $charLength = strlen($input); $number = [1,10,100,1000,10000,100000]; $output = ceil($input / $number[$charLength - 1]) * $number[$charLength - 1]; //same like this ceil($input / 10) * 10; ?>