Avatar billede benneharli Juniormester
22. januar 2007 - 20:29 Der er 11 kommentarer og
1 løsning

array der udfyldes fra tal 1 til tal 2

jeg skal bruge et array der har tallene:

Fra "$tal1" til og med "$tal2" OG
Fra "$tal3" til og med "$tal4" OG
Fra "$tal5" til og med "$tal6" OG
Fra "$tal7" til og med "$tal8"

HOW
Avatar billede mcgoat Nybegynder
22. januar 2007 - 20:31 #1
lave 4 løkker der kører fra $tal1 til $tal2 og smider de tal ind i array, og derefter løkke der kører fra $tal2 til $tal 3 og smider dem ind. og så videre.

Eller noget helt andet du mener?
Avatar billede benneharli Juniormester
22. januar 2007 - 20:32 #2
nope... det er lige praecist det... gider du at skrive koden? PLEASE ;-)
Avatar billede benneharli Juniormester
22. januar 2007 - 20:34 #3
hov, skal lige sige at hvis et af tallene er nul, skal funktionen stoppes, og array skal kun have de tal der er indtil da...

altsaa. Hvis "$tal5" er nul, er det kun "$tal1" til "$tal2" OG "$tal3" til "$tal4" der skal vaere i arrayet
Avatar billede mcgoat Nybegynder
22. januar 2007 - 20:40 #4
$array=array();
$startnum = 0;

for($i=$tal1; $i<$tal2; $i++)
{
  if($tal1 == 0 || $tal2 == 0) break;
  $array[startnum] = $i;
  $startnum++;
}

for($i=$tal3; $i<$tal4; $i++)
{
  if($tal1 == 0 || $tal2 == 0) break;
  $array[startnum] = $i;
  $startnum++;
}

for($i=$tal5; $i<$tal6; $i++)
{
  if($tal1 == 0 || $tal2 == 0) break;
  $array[startnum] = $i;
  $startnum++;
}

for($i=$tal7; $i<$tal8; $i++)
{
  if($tal1 == 0 || $tal2 == 0) break;
  $array[startnum] = $i;
  $startnum++;
}

slet ikke testet.. men noget ala det vil jeg tro
Avatar billede mcgoat Nybegynder
22. januar 2007 - 20:41 #5
ehm.. fik ikke lige rettet de IF sætninger til. de skal selvfølgelig lige ændres til de rigtige $tal variabler
Avatar billede benneharli Juniormester
22. januar 2007 - 20:47 #6
og hvordan er det saa lige jeg ser de vaerdier jeg faar i arrayet?
Avatar billede mcgoat Nybegynder
22. januar 2007 - 20:49 #7
du kan f.eks

for($i = 0; $i < sizeof($array); $i++)
{
  echo $array[$i] . "<br>";
}
Avatar billede coderdk Praktikant
22. januar 2007 - 20:52 #8
$resultat = array();
$resultat = array_merge( $resultat, range( $tal1, $tal2 ) );
$resultat = array_merge( $resultat, range( $tal3, $tal4 ) );
$resultat = array_merge( $resultat, range( $tal5, $tal6 ) );
$resultat = array_merge( $resultat, range( $tal7, $tal8 ) );
osv?
Avatar billede terrak Nybegynder
22. januar 2007 - 20:54 #9
Var det ikke en ide også at gemme tallene i et array? Altså i stedet for at smide værdierne i $tal1, $tal2, $tal3 osv.

Det vil give en meget mere dynamisk kode, hvis nu der f.eks. skulle komme flere tal ($tal9 og $tal10 i dit eksempel). Altså så værdien af
$talarray[0][0]
er $tal1 og
$talarray[0][1]
er $tal2 og
$talarray[1][0]
er $tal3 og
$talarray[1][1]
er $tal4
.. osv.

Det vil også give en simplere kode.
Avatar billede coderdk Praktikant
22. januar 2007 - 20:56 #10
Eller måske:

$talarray = array( array( 1, 5 ), array( 9, 14 ), array( 21, 33 ) );
$resultat = array();
foreach( $talarray as $tal )
{
    list( $fra, $til ) = $tal;
    $resultat = array_merge( $resultat, range( $fra, $til ) );
}


Så er indeholder $talarray et array af arrays af fra og til...
Avatar billede benneharli Juniormester
22. januar 2007 - 21:04 #11
--> coderdk...
bedste losning. smid et svar ;-)
Avatar billede coderdk Praktikant
22. januar 2007 - 21:10 #12
Aight :)
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