перенос значения на следующую 10-ю позицию

#php

#php

Вопрос:

Я знаю, что это довольно необычный вопрос, но мне нужно найти следующую 10-ю позицию

Позвольте мне пояснить на примере:

У меня будет несколько чисел, таких как

 2, 5, 8, 13, 28, 35, 42, 49
  

Я хочу найти следующую 10-ю позицию

 2  =>  10
5  =>  10
8  =>  10
13  =>  20
28  =>  30
35  =>  40
42  =>  50
49  =>  50
  

Как я могу это найти, пожалуйста, помогите, ребята. Спасибо.

Извините за плохой английский.

Комментарии:

1. Я думаю, по-английски это обычно называется «10-я позиция». Просто пытаюсь помочь.

2. Итак, вы хотите округлить до ближайшего значения, кратного десяти.

Ответ №1:

Разделите на 10, ceil() , умножьте на 10.

Комментарии:

1. 1 хороший ответ. однако я бы предпочел сделать это без использования каких-либо плавающих точек, пусть даже временно, поэтому я бы предпочел подход с использованием modulus, а не ceil() .

Ответ №2:

 $next10th = round( $number   5 , -1 ,  PHP_ROUND_HALF_DOWN )
  

Если число является целым числом, вы также можете использовать:

 $next10th = $number   9 - (($number-1) % 10)
  

Комментарии:

1. 1 Я бы предпочел любой из них решению, использующему ceil() или floor() .

Ответ №3:

 $numbers = array(2, 5, 8, 13, 28, 35, 42, 49);
foreach ($numbers as $n) {
  echo $n . ' => ' . ((floor($n / 10)   1) * 10) . "<br />n";
  }
  

или

 $numbers = array(2, 5, 8, 13, 28, 35, 42, 49);
foreach ($numbers as $n) {
  echo $n . ' => ' . (ceil($n / 10) * 10) . "<br />n";
  }
  

Оба вывода:

 2 => 10
5 => 10
8 => 10
13 => 20
28 => 30
35 => 40
42 => 50
49 => 50