Округлить число до ближайшего 9 в laravel

Я хочу округлить число до ближайшего 9, вот пример

(12,24,37,75,80)

если я дал эти входы, хочу получить вывод, как показано ниже

(19,29,39,79,89)

Я использую PHP (laravel), пожалуйста, помогите мне.

Можете ли вы уточнить самые ближайшие 9 еще больше?

nice_dev 21.12.2020 12:46

предположим, что 12 - это входное число, которое я хочу получить 19, или, если 24 - это входное число, выходное значение должно быть 29.

jabir145 21.12.2020 12:51

Так что в основном вы просто хотите заменить последнюю цифру на 9.

El_Vanja 21.12.2020 12:56

@MUHAMMEDJABIRC Все еще неясно. Какой ответ на 90?

nice_dev 21.12.2020 13:32

на 90 тоже нужно 99

jabir145 21.12.2020 14:08

@nice_dev Ответ ниже работает для меня, спасибо за ответ

jabir145 21.12.2020 14:08

@MUHAMMEDJABIRC Вопросы по SO в любом случае должны быть ясными, чтобы будущие читатели, которые ссылаются на ваш вопрос, могли понять, что было задано и на что был дан ответ.

nice_dev 21.12.2020 14:35
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
7
371
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий
$input = [12,24,37,75,80];

$output = array_map(function($num) {
    return (int)($num / 10) * 10 + 9;
}, $input);

@MUHAMMEDJABIRC Для 90 это 91 или 99 или, может быть, само 90?

nice_dev 21.12.2020 13:33
<?php 

$items = array(12,24,37,75,80);
$endDigit = 9; //this should be between 0-9
$newItems = array();
foreach($items as $item){
  $final = (int)($item / 10) * 10 + $endDigit;
  array_push($newItems,$final); 
}
print_r($newItems);

Выход

Array ( [0] => 19 [1] => 29 [2] => 39 [3] => 79 [4] => 89 )

Вы проверили свою функцию с $endDigit=3? Результат [13,23,33,73,83]. Это не предполагаемое поведение "округивания".

Carsten Massmann 21.12.2020 16:25

Мне нравится простота ответа @HTMHell. И он отлично работает для целых чисел. Однако я обнаружил, что при использовании реальных чисел в качестве входных данных что-то вроде 19.999 будет «округлено» до 19.

Поэтому я предлагаю следующую модифицированную версию:

echo json_encode(array_map(function($v){
  return ceil(($v+1)/10)*10-1;
},[12,18.99,19.01,24,37,75,80,90]));
// [19,19,29,29,39,79,89,99]

И, чтобы ответить на вопрос @nice_dev, 90 нужно округлить до 99.

Другие вопросы по теме