php用逗号格式化数字的方法(代码示例)

今日工作需要格式化数字显示当前商品价格,比如2335.32,需要格式化为2,335.32这样显示,我写了一个函数,总感觉这么简单的功能,但是却需要30多行代码来完成。

具体代码如下:

  1. <?php
  2. /****
  3. * @author Amos Wang
  4. * @param $number
  5. * @return mixed
  6. */
  7. function numberFormat($number)
  8. {
  9. if(!is_numeric($number)){
  10. return $number; // 只处理数字
  11. }
  12. list($integer,$decimal) = explode('.',$number);
  13. $number_temp = ""; // 临时计数
  14. $len = strlen($integer);
  15. $sublen = 3; // 每隔几位数加逗号
  16. //处理整数部分
  17. $i=1;
  18. while(true){
  19. $pos = $i * $sublen;
  20. $join = emptyempty($number_temp) ? "" : ","; // 连接符
  21. $number_temp = substr($integer,(0-$pos),$sublen).$join.$number_temp;
  22. if(($pos + $sublen) > $len){
  23. $number_temp = substr($integer,0,($len - $pos)).$join.$number_temp;
  24. break;
  25. }
  26. $i++;
  27. }
  28. //处理小数部分
  29. if(!emptyempty($decimal)){
  30. $number_temp = !emptyempty($number_temp) ? $number_temp.".".$decimal : "0.".$decimal;
  31. }
  32. return $number_temp;
  33. }
  34. $result = numberFormat(1234567.5564);
  35. print_r($result);
  36. ?>
  37. //结果输出1,234,567.5564