ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
871
871
EMPFEHLEN
-
Hallo zusammen,
ich habe jetzt schon eine ganze weile gesucht und probiert, aber leider nichts gefunden. Es geht darum, dass ich aus einem Array:
alle möglichen Kombinationen, d.h. 123,231,312,132,321,213 erhalten will. Da habe ich jetzt rausgefunden, dass man dies rekursiv machen kann, was auch super funktioniert. Mein Problem ist jetzt aber, dass ich feste Werte festlegen möchte. Das heißt z.B., dass der zweite Wert nicht verändert werden kann. Das Array dafür hatte ich mir so vorgestellt:PHP-Code:array(1, 2, 3);
Mögliche Kombinationen wären dann nur noch 123 und 321. Kann mir irgendwer einen Tip geben, wie ich das in eine Rekursion wie diese hier:PHP-Code:array(0, 1, 0);
Quelle: http://www.tutorials.de/forum/php/31...erstellen.htmlPHP-Code:function permutation( $chars, $length )
{
if( $length < 2 OR !is_array( $chars ) OR empty( $chars ) )
{
return $chars;
}
$result = array();
foreach( $chars as $key => $value )
{
$cChars = $chars;
unset( $cChars[$key] );
$sub = permutation( $cChars, $length - 1);
foreach($sub as $subvalue)
{
$result[] = $value .' '.$subvalue;
}
}
return $result;
}
$chars = array(1, 2, 3);
print_r(permutation($chars, 3));
einfügen kann?
Vielen Dank schonmal!
-
Aufbauend auf welche Logik? Oder sollen zufällig irgendwelche Werte nicht änderbar sein?
mfg
DeluXe
-
Die Werte, die nicht änderbar sein sollen, werden (von mir/dem Benutzer) vorgegeben. Ich wollte also eine Funktion erstellen, welche als Array die Werte sowie die nicht änderbaren Stellen entgegennimmt und alle möglichen Kombinationen zurückgibt.
-
Wieder mal ein wneig Gehirnakrobatik. Meine Lösung ist sicher nicht perfekt, aber sie geht...
Code PHP:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
$chars = array(1, 2, 3); $blocked = array(0, 1, 0); // array erstellen der die blokierten Werte enthaltet // $map = array{[1] => 2} $map = array_filter(array_map(create_function('$b, $c', 'return $b == 1 ? $c : false;'), $blocked, $chars)); // Differenz mit dem Key (Position) ermitteln // $ch = array{[0] => 1, [2] => 3} $ch = array_diff_key($chars, $map); // permutation ausführen // $ch = array {[0] => "1 3", [1] => "3 1"} $ch = permutation($ch, count($ch)); // Die Ausgabe in Array splitten // array{[0]=>array{[0]=>"1", [1]=>"3"}, [1]=>array{[0]=>"3", [1]=>"1"}} $ch = array_map(create_function('$c', 'return explode(" ", $c);'), $ch); function combinePermutationWithMap(&$char, $key, $map){ foreach ($map as $pos => $value){ array_splice($char, $pos, 0, $value); } } // Die Resultatarrays mit $map kombinieren // array{[0]=>array{[0]=>"1", [1]=>2, [2]=>"3"}, [1]=>array{[0]=>"3", [1]=>2, [2]=>"1"}} array_walk($ch, 'combinePermutationWithMap' , $map); // Die Resultatarrays wieder in Strings wandeln // $ch = array {[0] => "1 2 3", [1] => "3 2 1"} $ch = array_map(create_function('$c', 'return implode(" ", $c);'), $ch); var_dump($ch);
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
Alle möglichen Kombinationen aus einem Zeichensatz - Verbesserungsvorschläge?
Von Kai008 im Forum JavaAntworten: 9Letzter Beitrag: 16.04.10, 00:00 -
mod_rewrite =Alle möglichen Kombinationen auf die Index seite umleiten
Von thespecialx im Forum Hosting & WebserverAntworten: 0Letzter Beitrag: 24.10.07, 21:25 -
Alle möglichen Kombinationen
Von Snape im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 3Letzter Beitrag: 21.09.05, 12:07 -
Schleife zur Auflistung aller möglichen Kombinationen aus einer Liste von Werten
Von sdh im Forum PHPAntworten: 1Letzter Beitrag: 26.05.04, 18:33 -
Eingabehilfe für Formulare mit festen Werten
Von mbuehren im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 12.05.04, 16:40





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren