En un script que estoy haciendo, obtengo un listado de preguntas en un array, dichas preguntas pueden ser desde 1 a n preguntas, cada pregunta tiene diferentes opciones a elegir que van de 1 a m opciones, es decir tanto al cantidad de preguntas como las opciones posibles de cada pregunta son inciertas.
Ahora bien, cada opcion de cada pregunta tiene una porcion de una URL y he aqui el problema, cada pregunta se responderia de forma secuencial es decir de la pregunta 1 se elige la opcion a, de la pregunta 2 la opcion b, de la pregunta 3 la opcion a y cada una de estas nos da una parte de la URL digamos en este escenario "p1_opa/", "p2_opb /", "p3_opa/" y al unir estas partes de la url tengo la url que necesito.
Ahora bien todas las url's se crean combinando opciones de todas las preguntas disponibles, voy a poner un array de ejemplo talvez me es mas facil de explicar:
Código PHP:
Array
(
[0] => Array
(
[OptionId] => 58
[Question] => Is your truck equipped with a floor-mounted manual 4x4 shifter?
[Choices] => Array
(
[0] => Array
(
[ChoiceId] => 705
[Choice] => No
[Url] => 4x4-manual-floor-shifter/no/
[Exceptions] => Array
(
)
)
)
)
[1] => Array
(
[OptionId] => 2
[Question] => Select your vehicle's bodystyle:
[Choices] => Array
(
[0] => Array
(
[ChoiceId] => 119
[Choice] => Regular Cab
[Url] => bodystyle/regular-cab/
[Exceptions] => Array
(
)
)
[1] => Array
(
[ChoiceId] => 143
[Choice] => SuperCab (Extended Cab)
[Url] => bodystyle/supercab-extended-cab/
[Exceptions] => Array
(
)
)
[2] => Array
(
[ChoiceId] => 632
[Choice] => SuperCrew (Crew Cab)
[Url] => bodystyle/supercrew-crew-cab/
[Exceptions] => Array
(
)
)
)
)
[2] => Array
(
[OptionId] => 68
[Question] => Please select your vehicle's floor mat retention device configuration:
[Choices] => Array
(
[0] => Array
(
[ChoiceId] => 919
[Choice] => Dual Floor Posts
[Url] => floor-retention-device-type/dual-floor-posts/
[Exceptions] => Array
(
)
)
[1] => Array
(
[ChoiceId] => 914
[Choice] => Single Floor Hook
[Url] => floor-retention-device-type/single-floor-hook/
[Exceptions] => Array
(
)
)
)
)
[3] => Array
(
[OptionId] => 89
[Question] => Please select your vehicles center console configuration:
[Choices] => Array
(
[0] => Array
(
[ChoiceId] => 866
[Choice] => Flow-Through Center Console
[Url] => ford-flow-through-console/Flow-Through_Center_Console/
[Exceptions] => Array
(
)
)
[1] => Array
(
[ChoiceId] => 969
[Choice] => Non-Flow-Through Center Console
[Url] => ford-flow-through-console/Non-Flow-Through_Center_Console/
[Exceptions] => Array
(
)
)
[2] => Array
(
[ChoiceId] => 867
[Choice] => Not Equipped
[Url] => ford-flow-through-console/Not Equipped/
[Exceptions] => Array
(
)
)
)
)
)
Nota: si se ve mal la manera en que posteo el array, pueden descargarlo en txt de la siguiente URL http://www.mediafire.com/view/?emj7y2ylwtum7ci
Si vemos este array, tiene 4 preguntas (0 a 3) y cada prgunta tiene las siguientes opciones:
0) Pregunta 1: tiene una unica opcion (a)
1) Pregunta 2: tiene 3 opciones (c,d,e)
2) Pregunta 3: tiene 2 opciones (f,g)
3) Pregunta 4: tiene 3 opciones (h,i,j)
Pues bien, las posibles combinaciones serian 18 (1x3x2x3) asi:
1) a+c+f+h
2) a+c+f+i
3) a+c+f+j
4) a+c+g+h
5) a+c+g+i
6) a+c+g+j
7) a+d+f+h
8) a+d+f+i
9) a+d+f+j
10) a+d+g+h
11) a+d+g+i
12) a+d+g+j
13) a+e+f+h
14) a+e+f+i
15) a+e+f+j
16) a+e+g+h
17) a+e+g+i
18) a+e+g+j
Pues bien, necesito poder obtener esta lista de URL's combinadas de esa manera ya intente de varias formas y me ha sido imposible considerando que la cantidad de preguntas y opciones son variables, no les pongo el codigo que tengo porque hace un desastre no funciona para nada bien y creo que si lo pongo confundiria mas de lo que beneficiaria, por favor un alma caritativa que me apoye con esto, ya tengo mucho queriendo resolverlo.
De antemano gracias