Witam
Znalazlem funkcję zamiany, jednak w delphi i probowalem przerobić na PHP, zacząłem następująco:
function div($a,$b){
return floor($a/$b);
}
function Slow($t){
$result = '';
if ($t[2] == 1)
$result=$s[$t[1]]+$n[$t[2].$t[3]];
else
$result= $s[$t[1]]+$d[$t[2]]+$j[$t[3]];
}
następnie ustaliłem zmienne tablicowe
$j = array( 1 => 'jeden',
2 => 'dwa',
3 => 'trzy',
4 => 'cztery',
5 => 'pięć',
6 => 'sześć',
7 => 'siedem',
8 => 'osiem',
9 => 'dziewięć');
$n = array( 10 => 'dziesięć',
11 => 'jedenaście',
12 => 'dwanaście',
13 => 'trzynaście',
14 => 'czternaście',
15 => 'piętnaście',
16 => 'szasnaście',
17 => 'siedemnaście',
18 => 'osiemnaście',
19 => 'dziewiętnaście');
$d = array( 0 => ',',
1 => 'dwadzieścia',
2 => 'trzydzieści',
3 => 'czterdzieści',
4 => 'piećdziesiąt',
5 => 'sześćdziesiąt',
6 => 'siedemdziesiąt',
7 => 'osiemdziesiąt',
8 => 'dziewięćdziesiąt');
$s = array(0 => '',
1 => 'sto',
2 => 'dwieście',
3 => 'trzysta',
4 => 'czterysta',
5 => 'pięćset',
6 => 'sześćset',
7 => 'siedemset',
8 => 'osiemset',
9 => 'dziewięćset');
$g = array( 0 => array (
1 => 'tysiąc',
2 => 'tysiące',
3 => 'tysięcy'),
1 => array (
1 => 'milion',
2 => 'miliony',
3 => 'milionów'));
i wziąłem się za sam kod:
function slowny_zapis($liczba){
$dl = strlen ($liczba);
for ($i=0; $i< div($dl-1,3); $i++){
$t1 = copy($t, strlen($t)-2,3);
// tu jest pierwszy problem
delete($t,strlen($t)-2,3);
// tu jest pierwszy problem
for ($j=1; $j<3-strlen($t1); $j++){
$t1='0'.$t1;
if ($t1=='000') continue
if ($t1=='001')
$sl = slow($t1).$g[$i][1].$sl;
else{
if (($t1[3] > 2 ) && ($t1[2]!=1))
$sl=slow($t1).$g[$i][2].$sl;
else
$sl=slow($t1).$g[$i][3].$sl;
}
}
}
return trim($sl);
}
Nie wiem czy gdzieś jeszcze jest problem z tą funkcją, ponieważ nie moge ruszyć z nią bez tego co oznaczyłem.
Czy ktoś już zmagał się z odobną funkcją ??