Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Nollien lisäys

petrinm [07.07.2005 12:17:00]

#

Miten voi muuttaa kokonaisluvun merkkijonoksi niin että alkuun tulee tietty määrä nollia?

8 -> 008
23 -> 023
134 -> 134

Antti Laaksonen [07.07.2005 12:30:53]

#

Tämä onnistuu vaikkapa str_pad-funktiolla. Parametrit ovat merkkijono, tasauspituus, tasausmerkki ja tasaustapa.

<?php
echo str_pad(8, 3, 0, STR_PAD_LEFT);   // 008
echo str_pad(23, 3, 0, STR_PAD_LEFT);  // 023
echo str_pad(134, 3, 0, STR_PAD_LEFT); // 134
?>

petrinm [07.07.2005 13:13:34]

#

kiitos

leftover [07.07.2005 13:32:57]

#

Jospa käytettäisiin kuitenkin sprintf https://www.php.net/sprintf funktiota niin päästään yhdellä rivillä

<?php
$luku = 8;
// loppukommenteissa miten käyttäytyy 88 ja 888 tapauksessa

$uusiluku = sprintf("%03d", $luku);
// 8 = "008"
// 88 = "088";
// 888 = "888";

// % aloittaa muotoilun, mahdollistaa tekstiin upotuksen
// muodossa "Kolminumeroisena luku olisi %03d"

// 0 on täyttömerkki, eli tässä tapauksessa luku täytetään
// etunollilla

// 3 on merkkijonon minimipituus

// d kertoo että kyseessä on kokonaisluku

?>

Deewiant [07.07.2005 13:50:46]

#

Tuota, myös str_pad vie vain yhden rivin. Ja parempi käyttää sitä funktiota, joka on nimenomaan tarkoitettu tuota varten, kuin yleiskäyttöistä sprintf:ää.

Antti Laaksonen [07.07.2005 14:34:18]

#

Tässä vielä kolmas tapa:

<?php
echo substr("000" . $luku, -3);
?>

Tämä on helppo toteuttaa monella muullakin kielellä.

FlashBack [07.07.2005 14:50:24]

#

lainaus:

Tässä vielä kolmas tapa:
<?php
echo substr("000" . $luku, -3);
?>

Tämä on helppo toteuttaa monella muullakin kielellä.

olettaen, että luvut eivät siis ole neljänumeroisia tai suurempia.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta