PHP Function Koma Pada Nombor

Tuesday, April 06, 2010

Apabila kita mahu gunakan nombor sebagai currency, boleh sahaja kita panggil menggunakan fungsi yang telah disediakan oleh PHP. Tetapi post ini sekadar berkongsi bagaimana menggunakan function yang dicipta sendiri.

Apabila kita diberi nilai matawang dalam bentuk dua titik perpuluhan, tanpa koma bagi setiap ribu, juta dan billion, kita buat sahaja function sendiri untuk memaparkan koma tersebut. Kalau tidak, gunakan sahaja function yang PHP sediakan seperti money_format atau formatCurrency.

<?php
function currencymyr($strn)
{
 $str = strrev($strn);
 $arr1 = str_split($str);
 $nilai = "";
 for($i=0; $i<count($arr1); $i++)
 {
  if(($i === 6) || ($i === 9) || ($i === 12)) { $nilai .= ","; }
  $nilai .= $arr1[$i];
 }
 $nilai = strrev($nilai);
 return $nilai;
}

$str2 = "34888373785.09";
echo currencymyr($str2); //34,888,373,785.09
?>

Cipta satu function, kemudian panggil semula apabila hendak menggunakannya. Seperti contoh di atas, kita akan dapat hasil koma setiap selang 3 aksara pada nombor yang diberi. Pada ketika $i=6 baru kita mula menambah koma, kerana ketika $i=2 sudah ada titik perpuluhan.

Dalam PHP, fungsi strrev untuk reverse string, manakala fungsi str_split untuk memecahkan setiap huruf di dalam satu perkataan menjadi satu kumpulan array.

Sebenarnya terpulang pada kita nak buat macam mana, asalkan hasilnya seperti yang kita mahu. Seperti contoh di atas, tidak semestinya perlu guna strrev, boleh sahaja gunakan array_reverse selepas guna str_split. Atau tak perlu reverse array, gunakan sahaja kaedah for($i=count($arr1); $i>=0; $i=$i-1) dan sebagainya.

0 comments: