her er kun 15 kombinationer, men den sidste er bare et 0.
jeg havde tænkt på noget med at loop en gang igennem med antallet af hoved elementer, fordi at der ligesom er det antal typer af kombinationer, men er gået lidt i stå.
// MAKING LIST WITH SINGLE NAMES for ($i = 0; $i < count($morphs); $i++) { if ($morphs[$i]["super"] == 0 && ($morphs[$i]["gene"] != "res" || $morphs[$i]["het"] == 1)) { if ($str != "") $str .= ','; $str .= $prefix . $morphs[$i]["name"]; } }
} elseif ($x == (count($morphs)-1)) {
// MAKEING LIST OF ALL MORPHS TOGETHER for ($i = 0; $i < count($morphs); $i++) { if ($morphs[$i]["super"] == 0 && ($morphs[$i]["gene"] != "res" || $morphs[$i]["het"] == 1)) { if ($last != "") $last .= "|"; $last .= $prefix . $morphs[$i]["name"]; $lc++; } }
if ($lc > 1) { if ($str != "") $str .= ','; $str .= $last; }
} else {
// HER MANGLER NOGET KODE
}
}
Jeg starter med at loop arrayet igennem og har så lavet første og sidste trin i 2 if sætninger, if ($x == 0) og if ($x == (count($morphs)-1)) så det skulle være på plads.
Det der mangler er så noget kode som sætter x antal sæt kombinationer op. Og de skulle gerne komme i rækkefølge:
a b c d a-b a-c a-d b-c b-d c-d a-b-c b-c-d a-c-d a-b-d a-b-c-d
Håber det var en bedre forklaring af min kode... :|
Og tænkte at hvis der er 4 tal i $morphs så skal jeg bruge 4 blokke:
a b c d
a-b a-c a-d b-c b-d c-d
a-b-c b-c-d a-c-d a-b-d
a-b-c-d
Derfor ville jeg loope igennem 4 gange... Første gang ved jeg at den bare skal udskrive den enkelte morph, og sidste gang ved jeg at den skal sætte alle sammen sammen.
Men de x antal blokke der er imellem er forskellige alt efter hvor mange elementer der er i $morphs.
Hvorfor bruger du ikke bare de funktioner som vi har forslået?
Den funktion jeg har forslået. Returnere et array som indeholder de kombinationer du efterspørger... Hvis de skal være i en bestemt rækkefølgende kan du bruge PHP's usort funktion.
Men jeg kunne ikke få dne til at retunere noget brugbart. Jeg går ud fra at det er mig der klumper i den og derfor viser jeg min kode og spørger om hjælp til at indsætte det i mine kode.
Så vidt jeg kan se har du selv prøvet at lave en løsning, men mangler havldelen. Det vi har forslået er en komplet løsning...
Har du prøvet at teste vores forslag?
Jeg kan ikke se hvorfor de ikke skulle virke... Hvis $morphs er et array som indeholder (1, 2, 3, 4) så returnere den funktion combine jeg har forslået i #4 et array indeholdende: combine($morphs) => array(1, 2, 3, 4, 1-2, 1-3, 1-4, 1-2-3, 1-2-4, 1-2-3-4, 1-3-4, 2-3, 2-4, 2-3-4, 3-4) Giver det dig ikke alt hvad du har brug for?
Nå nu er jeg kommet videre og har brugt den ene af jeres forslag. Synes dog at I begge skal smide et svar, så I kan dele point'ne, da begge løsninger virkede og jeg bare lige den der lige faldt mig ind.
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.