Avatar billede jakobsen Nybegynder
22. januar 2006 - 15:05 Der er 9 kommentarer og
1 løsning

Opdeling af tal

Hej,

Jeg har en $tal = "321654100250";

jeg vil gerne tjekke om der i $tal er 12 cifre, og hvis der er,
skal de deles ud i $tal1 = de første 5 cifre, $tal2 = de næste 5, $tal3= de sidste 2..

er det muligt?
Avatar billede jakobclausen Nybegynder
22. januar 2006 - 15:15 #1
if(strlen($tal)== 12)
{
  $tal1 = substr($tal,0,5);
  $tal2 = substr($tal,5,5);
  $tal3 = substr($tal,10,2);
}
Avatar billede hmortensen Nybegynder
22. januar 2006 - 15:15 #2
if (strlen($tal) == 12 && is_numeric($tal))
{
  $tal1 = substr($tal, 0, 5);
  $tal2 = substr($tal, 5, 5);
  $tal3 = substr($tal, -2);
}
Avatar billede polle007 Nybegynder
22. januar 2006 - 15:16 #3
if(preg_match("/^(\\d{5})(\\d{5})(\\d{2})$/", $tal, $match)){
    $tal1 = $match[1];
    $tal2 = $match[2];
    $tal3 = $match[3];
}
Avatar billede polle007 Nybegynder
22. januar 2006 - 15:25 #4
Hvis du ønsker maximum performance, skal du vælge substr
Avatar billede hmortensen Nybegynder
22. januar 2006 - 15:31 #5
Ja, reg.exp er lidt overkill når positionerne er kendte.
Avatar billede polle007 Nybegynder
22. januar 2006 - 15:34 #6
ja, men så bliver det så også kontrolleret, at $str kun indeholder tegnene 0-9
Avatar billede Slettet bruger
22. januar 2006 - 16:44 #7
Det gør hmortensens også.
Avatar billede Slettet bruger
22. januar 2006 - 16:45 #8
if(!empty($tal) && strlen($tal) == 12 && is_numeric($tal))
{
  $tal1 = substr($tal, 0, 5);
  $tal2 = substr($tal, 5, 5);
  $tal3 = substr($tal, -2);
}

Hvis $tal ikke er sat, og du ikke bruger empty eller isset, er syntaksen for din if-sætning ikke korrekt.
Avatar billede polle007 Nybegynder
22. januar 2006 - 17:15 #9
tjao, is_numeric kontrollerer, om php kan omdanne strengen til et tal
http://dk.php.net/is_numeric

andre tegn 0-9 kan godt indgå
Avatar billede Slettet bruger
22. januar 2006 - 17:51 #10
Finds whether a variable is a number or a numeric string

Det ser jeg da som om, at den tjekker, om det er en streng eller et tal.

Jeg er dog i tvivl om , og . vil blive valideret som en del af et tal - . gør muligvis.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester