ich möchte z.b. aus 20 vorgegebenen unterschiedlichen zahlen alle 6er kombinationen errechnen und ausgeben. wie könnte man das in php umsetzen?
alle möglichen kombinationen ermitteln
Einklappen
X
-
PHP-Code:function do_combine($zahlen, $laenge)
{
$elemente = count($zahlen);
$anzahl = pow($elemente, $laenge);
for ($i = 0; $i < $anzahl; $i++)
{
$temp = $i;
$ergebnis[$i] = array();
for ($j = 0; $j < $laenge; $j++)
{
if (!in_array($zahlen[$temp%$elemente], $ergebnis[$i]))
{
$ergebnis[$i][$j] = $zahlen[$temp%$elemente];
$temp = $temp / $elemente;
}
}
if (count(array_unique($ergebnis[$i])) < $laenge)
unset($ergebnis[$i]);
}
return array_values($ergebnis);
}
$zahlen = array(1, 2, 3);
$laenge = 3;
print_r(do_combine($zahlen, $laenge));
Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
@mrhappiness: vielen dank! wenn man die ausgabe ändert funktioniert dein script. aber jetzt sehe ich was ich vergessen habe zu sagen. die reihenfolge der zahlen ist egal. beispiel: alle 2er kombis aus 1,2,3 soll 12, 13, und 23 ergeben. ob 12 oder 21 soll egal sein. wie muss man dann dein script ändern?
Kommentar
-
Ist zwar ein sehr alter Thread, aber vielleicht kann man mir ja trotzdem helfen
Der gegebene Code macht genau das was ich erreichen möchte, ich verstehe nur leider nicht warum.
Ich bin was Php angeht aber auch ein totaler Anfänger.
Bis zur zweiten For-Schleife, welche die Arrays ergebnis[i] jeweils von Position 0 bis 5 auffüllt kann ich folgen. Diese Schleife jedoch verstehe Ich nicht.
Konkret:
Was passiert wenn der Wert (temp%elemente) bereits im Array ist?
Und wie kommt ich durch die Rechnungen mit temp immer auf neue Zahlen und gehe alle Kombination durch?
Für Hilfe wäre ich sehr dankbar
Kommentar
Kommentar