Ich habe ein Array, das eine beliebige Anzahl von Elementen enthalten kann. Jedes Element enthält eine ID und ein Array namens "Optionen" (auch mit einer beliebigen Anzahl von Elementen). Hier ist die Struktur:Wie man rekursive Funktion baut, um alle Kombinationen eines mehrstufigen Arrays aufzulisten?
$arr = array(
array('id' => 10, 'options' => array(3, 5)),
array('id' => 15, 'options' => array(2, 4, 8, 9)),
array('id' => 20, 'options' => array(2, 6, 7)),
// ... any number of elements
);
Ich mag würde ein anderes Array erstellen, aus der Basis dieses. Jeder Schlüssel ist das ID-Feld + ein 'Option' Array-Wert, und der Wert ist ein Array des nächsten Elements, und dann der nächste, und so weiter. Grundsätzlich sollte es mir jede Kombination der obigen Anordnungen geben (Art wie ein Baum), in der Reihenfolge, die das Array definiert:
$new = array(
'10-3' => array(
'15-2' => array('20-2', '20-6', '20-7'),
'15-4' => array('20-2', '20-6', '20-7'),
'15-8' => array('20-2', '20-6', '20-7'),
'15-9' => array('20-2', '20-6', '20-7')
),
'10-5' => array(
'15-2' => array('20-2', '20-6', '20-7'),
'15-4' => array('20-2', '20-6', '20-7'),
'15-8' => array('20-2', '20-6', '20-7'),
'15-9' => array('20-2', '20-6', '20-7')
)
);
da das Array eine beliebige Anzahl von Elementen enthalten kann, unter der Annahme, ich bin ich müsste eine Art rekursive Funktion enthalten. Ich habe nicht viel Erfahrung in der Rekursion, also ist das eine ziemlich entmutigende Aufgabe für mich.
Könnte ich ein paar Hinweise darauf bekommen, wo ich beim Aufbau dieser rekursiven Funktion anfangen soll?
Dank Ben, ich schätze es wirklich! Das gibt mir eine gute Vorstellung davon, was ich brauche. Ich werde es ausprobieren und Sie wissen lassen. –
Die Logik in Ihrem Beispiel war ziemlich perfekt. Danke noch einmal! –