Autor Zpráva
Stepanka
Profil *
Ahoj,
prosím, pomohl by mi někdo s jedním naformátováním čísla?

Mám třeba proměnnou $cislo, které je jedno až čtyřciferná.
A já bych potřebovala před to číslo vložit tolik počet mezer, aby to celkově dávalo třeba 7 míst.. Tzn. u čísla 538 vypsat MezeraMezeraMezereMezera538.

Nevíte někdo prosím jak na to? Vím že nejspíš pomocí sprintf, ale vůbec se mi to nedaří.

Mockrát předem děkuju.
Taps
Profil
Stepanka
podívej se na fuknci str_pad
echo str_pad(538, 7, "0", STR_PAD_LEFT);
Stepanka
Profil *
Taps
Ok, děkuju moc. Zkusila jsem to a s nulama to jde v pohodě, ale nejdou mi tam vložit mezery..

zkoušela jsem
str_pad($row['pocet_dnu_od_zalozeni'], 7, " ", STR_PAD_LEFT)
str_pad($row['pocet_dnu_od_zalozeni'], 7, "' '", STR_PAD_LEFT)
str_pad($row['pocet_dnu_od_zalozeni'], 7, " ", STR_PAD_LEFT)
a všechno možné, ale mezeru se mi vložit nepodařilo...

Ale i tak děkuju, pořád je to lepší, než sprintf
Kcko
Profil
Myslis jo? :) me se teda nezda zrovna na toto pouzit STR_PAD a rict ze je to lepsi nez SPRINTF ale co uz
Taps
Profil
Stepanka
pokud taháš čísla z databáze tak nastav sloupečku vlastnost unsigned_zerofill a pak ti to doplní 0 a nemusíš používat str_pad
Stepanka
Profil *
Kcko
Ne, už jsem zjistila, že sprintf bude lepší :-) Jen mi tam taky nejdou nacpat mezery..
Stepanka
Profil *
Taps
Ale já už potřetí říkám, že tam nechci nuly, ale mezery :-)
Kajman_
Profil *
str_replace(" "," ",str_pad($row['pocet_dnu_od_zalozeni'], 7, " ", STR_PAD_LEFT))
Mike8748
Profil
$vysledek=sprintf("%7d",$cislo);

slozity co :)
Stepanka
Profil *
Mike8748
je to složitý, to co píšeš už jsem zkoušela dávno, ale vloží to vždycky jen první mezeru před číslo a zbytek nic. Další mezery se neobjeví. Takže mám to samé, jako kdybych tu mezeru vložila natvrdo... Ale i tak díky. Zkusím Kajmanovo řešení..
Stepanka
Profil *
Kajman_
Perfektní, první řešení co funguje :-) Děkuju mockrát!!
nightfish
Profil
Stepanka
problém většiny výše uvedených řešení spočívá v tom, že v HTML se dvě a více mezer za sebou zobrazí jako mezera jedna... ve zdrojovém kódu HTML budou zobrazeny všechny, ale ve výstupu jenom jedna... řešením je výstup prohnat funkcí str_replace(" ", " ", $vstup), která nahradí normální mezery za "pevné mezery", které se nezhušťují...
Stepanka
Profil *
nightfish
Aha, to jsem ani nevěděla... Děkuju.
Michal666
Profil
Obcas se hodi mrknout do manualu napriklad sem number_format

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: