note 118781 added to function.number-format

From: Date: Fri, 05 Feb 2016 11:43:26 +0000
Subject: note 118781 added to function.number-format
Groups: php.notes 
Request: Send a blank email to php-notes+get-204862@lists.php.net to get a copy of this message
This function is used for reformatting already formatted numbers. <?php function formatNumber($number, $format=[], $oldDecimalSeparator=",.·'", $multiplier=1) { /** $format — the array of formatting options, details in the example. $oldDecimalSeparator — decimal separator used in the $number. If the separator can meet different characters, then you need to record them all, for example: ',.'. $multiplier — typically used to adjust prices up or down. */ if ($format) { $format += ['numOfDecimals' => 0, 'decimalSeparator' => '.', 'thousandSeparator' => '']; # Default format # Find decimal separator # The decimal separator is the one that is the last and does not occur more than once if ($letters = str_replace(' ', '', $number)) { # Replace spaces if ($letters = preg_replace('/^-/', '', $letters)) { # Remove minus if ($letters = preg_replace('/[0-9]/', '', $letters)) { # Get all non digits $lastletter = substr($letters, -1); # Returns last char if (substr_count($letters, $lastletter) == 1) { if (strpos($oldDecimalSeparator, $lastletter) !== false) $oldDecimalSep = $lastletter; else return $number; } } } } $number = preg_replace('/[^0-9-]/', '', $number); # Remove all non digits except 'minus' if ($oldDecimalSep) $number = str_replace($oldDecimalSep, '.', $number); # Format to float if ($multiplier != 1) $number = $number * $multiplier; # Convert float to new format $number = number_format($number, $format['numOfDecimals'], $format['decimalSeparator'], $format['thousandSeparator'] ); } return $number; } /** Example. Formatting data in which the decimal separator can occur as the comma and dot. Formatting into Russian format: -12 345,67 */ echo formatNumber($number, [ 'numOfDecimals' => 2, 'decimalSeparator' => ',', 'thousandSeparator' => '&nbsp;' ], ',.'); ?> ---- Server IP: 72.52.91.14 Probable Submitter: 217.173.31.171 ---- Manual Page -- http://php.net/manual/en/function.number-format.php Edit -- https://master.php.net/note/edit/118781 Del: integrated -- https://master.php.net/note/delete/118781/integrated Del: useless -- https://master.php.net/note/delete/118781/useless Del: bad code -- https://master.php.net/note/delete/118781/bad+code Del: spam -- https://master.php.net/note/delete/118781/spam Del: non-english -- https://master.php.net/note/delete/118781/non-english Del: in docs -- https://master.php.net/note/delete/118781/in+docs Del: other reasons-- https://master.php.net/note/delete/118781 Reject -- https://master.php.net/note/reject/118781 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#204862) next »