2013-02-27 3 views
1

Я изменяю один из фильтров продуктов OpenCart для фильтрации продуктов по цене. То, что я делаю, это получить все продукты, относящиеся к определенной категории, и извлечь их цены, чтобы поместить их в слайдер, но это не элегантно или «профессионально» вообще, и я хотел бы закодировать правильное решение.PHP - получить самое близкое число с определенным номером?

Предположим, у меня есть следующие цены: 125, 270, 517, 1680 и 14790. То, что я хотел бы сделать (в идеале), получить наибольшее число (14790 в этом кратком примере) и получить от него что-то например, «15000», поэтому я могу разделить это значение между заданным множителем (например, 100) и помещать его в слайдер.

Есть ли функция PHP для такого расчета?

+1

Надеюсь, что это поможет вам http://stackoverflow.com/questions/14935390/convert-adjust-number-in-a-specific-counting-with-php/14935471#14935471 – Rikesh

+0

Хороший подход, это не совсем что я искал, но у меня есть представление о том, где его использовать. Большое спасибо :) –

ответ

2

Получить максимальное количество, то вокруг него вплоть до ближайшая тысяча?

<?php 

$largest = max(125, 270, 517, 1680, 14790); 

$nearest = ceil($largest/1000) * 1000; 
+0

_Chapeau! _ Именно то, что я искал. Большое спасибо :) –

1

Вы можете просто пропустить цифры, помня о самом высоком значении, когда идете. Это обычная практика кодирования. (Хорошо, действительно, есть функция max(), echo max (1, 3, 5, 6, 7); // 7)

Тогда вы можете разделить максимальное число на свой коэффициент, взять целое число, которое вы получите, и добавьте его к нему, затем снова умножьте коэффициент и вернитесь.

1

просто сделайте: x = пол (14790/100); функция пол возвращает следующее самое низкое целочисленное значение

+0

Хммм не совсем то, что я искал, но спасибо за ответ :) –

3

Если я понимаю ваш вопрос, и вы просите округлить, по существу, до ближайшего 100, нет определенной функции, но с небольшим количеством математики вы можете округлить до ближайшие сто так:

$price = ceil($price/100) * 100; 

Использование:

$price = ceil($price/1000) * 1000; 

бы округлить до ближайшего 1000.

+0

Хорошая мысль. Ответ был очень близок к этому, функция ceil была ключом к определению ближайшего числа. Я последовал за ответом @sjdaws, и я получил то, что мне было нужно. Большое спасибо :) –