J'ai un tableau qui peut contenir n'importe quel nombre d'éléments. Chaque élément contient un ID et un tableau appelé "options" (également avec n'importe quel nombre d'éléments). Voici la structure:Comment construire une fonction récursive pour lister toutes les combinaisons d'une matrice à plusieurs niveaux?
$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
);
Je voudrais créer un autre tableau basé sur celui-ci. Chaque clé est le champ ID + une valeur de tableau 'option', et la valeur est un tableau de l'élément suivant, puis le suivant, et ainsi de suite. Fondamentalement, il devrait me donner toutes les combinaisons des tableaux ci-dessus (un peu comme un arbre), dans l'ordre que le tableau a été défini:
$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')
)
);
Parce que le tableau peut contenir un certain nombre d'éléments, je suppose que je aurait besoin d'inclure un certain type de fonction récursive. Je n'ai pas beaucoup d'expérience en récursivité, donc c'est une tâche assez ardue pour moi. Puis-je obtenir des pointeurs sur la façon de commencer à construire cette fonction récursive?
Merci Ben, j'apprécie vraiment! Cela me donne une bonne idée de ce dont j'ai besoin. Je vais essayer et vous le faire savoir. –
La logique dans votre exemple était à peu près parfaite. Merci encore! –