Функция деления числа на разряды

Форум для авторов модов для phpBB 2.0.x. Здесь можно попросить помощи в разработке у коллег.

Функция деления числа на разряды

Сообщение Lektor 09.06.2007 18:38

Вот у меня есть переменная $size в которой содержится значение - размер файла, я хочу чтоб это число разделялось по разрядам т.е. вместо 6350238 можно было получить 6 350 238 .. просьба помочь написать функцию которая обработывалаб эту переменную и возвращала бы значение в нужном виде..
Lektor
phpBB 2.0.12
 
Сообщения: 568
Зарегистрирован: 20.04.2006 14:19


Сообщение Xpert 09.06.2007 20:43

Код: Выделить всё
function num_format($number)
{
   if ( $number < 1000 )
   {
      return $number;
   }

   $number_parts = array();

   while ( strlen($number) > 3 )
   {
      $number_parts[] = substr($number, -3, 3);
      $number = substr($number, 0, strlen($number) - 3 );
   }

   $number_parts[] = $number;
   $number_parts = array_reverse($number_parts);

   $number = implode('&nbsp;', $number_parts);

   return $number;
}
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
 
Сообщения: 5636
Зарегистрирован: 13.03.2004 21:27
Откуда: msk.ru

Сообщение ra 09.06.2007 21:01

По моему куда проще использовать
Код: Выделить всё
strrev(wordwrap(strrev($num), 3, ' '))
ra
phpBB 2.0.8
 
Сообщения: 337
Зарегистрирован: 28.04.2004 20:35
Откуда: Беларусь

Сообщение Xpert 09.06.2007 21:29

Краткость - сестра таланта :)
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
 
Сообщения: 5636
Зарегистрирован: 13.03.2004 21:27
Откуда: msk.ru

Сообщение Lektor 09.06.2007 21:31

Xpert
Спасибо, отлично пашет :)
Lektor
phpBB 2.0.12
 
Сообщения: 568
Зарегистрирован: 20.04.2006 14:19

Сообщение Coagulant 09.06.2007 23:33

Вот ещё красивое решение:
Код: Выделить всё
$spaced_size = preg_replace ("/(?<=\d)(?=(\d\d\d)+$)/si", " ", $size);
Аватара пользователя
Coagulant
phpBB 2.0.17
 
Сообщения: 1011
Зарегистрирован: 10.01.2005 19:43
Откуда: Москва

Сообщение Поручик 12.06.2007 18:38

Решение будет еще красивей, если использовать одинарные кавычки. Особенно в цикле полезно

Код: Выделить всё
$views = preg_replace ('/(?<=\d)(?=(\d\d\d)+$)/si', ' ', $topic_rowset[$i]['topic_views']);
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB2 | FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/
Аватара пользователя
Поручик
Его Благородие
Его Благородие
 
Сообщения: 3622
Зарегистрирован: 12.05.2005 16:25
Откуда: Оренбург (Южный Урал)


Вернуться в Для авторов (phpBB 2.0.x)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0