Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/06/2009, 06:10
fsk
 
Fecha de Ingreso: octubre-2008
Mensajes: 7
Antigüedad: 16 años, 5 meses
Puntos: 0
Recorrer array (o varios) combinando valores

Hola a todos.
Tengo el siguiente array (ejemplo) el cual tengo que recorrer combinando los primeros niveles:


Código PHP:
[propiedades] => stdClass Object
    
(
        [
0] => stdClass Object
                
(
                    [
id] => 16
                    
[nombre] => rellenable
                    
[datos] => Array
                        (
                                [
0] => stdClass Object
                                    
(
                                        [
valorReferencia] => 123
                                        
[valor] => asdf
                                    
)

                                [
1] => stdClass Object
                                    
(
                                        [
valorReferencia] => 234
                                        
[valor] => 234
                                    
)

                        )

                )

        [
1] => stdClass Object
                
(
                    [
id] => 17
                    
[nombre] => rellenable 2
                    
[datos] => Array
                        (
                                [
0] => stdClass Object
                                    
(
                                        [
valorReferencia] => 456
                                        
[valor] => 456
                                    
)

                        )

                )

        [
2] => stdClass Object
                
(
                    [
id] => 13
                    
[nombre] => no rellenable1
                    
[datos] => Array
                        (
                                [
0] => stdClass Object
                                    
(
                                        [
valorReferencia] => E56
                                        
[valor] => Rojo
                                    
)

                                [
1] => stdClass Object
                                    
(
                                        [
valorReferencia] => 4t6
                                        
[valor] => Verde
                                    
)

                        )

                )

        [
3] => stdClass Object
                
(
                    [
id] => 15
                    
[nombre] => no rellenable2
                    
[datos] => Array
                        (
                                [
0] => stdClass Object
                                    
(
                                        [
valorReferencia] => 8ju
                                        
[valor] => Grande
                                    
)
                                [
1] => stdClass Object
                                    
(
                                        [
valorReferencia] => md4
                                        
[valor] => Mediano
                                    
)

                        )

                )

    ) 

La cuestión es que tengo que recorrer el array propiedades de manera que mezcle todas las posibles opciones que existan para que quede algo así:
Código PHP:

rellenable        rellenable 2        no rellenable        no rellenable2        valorReferencia
asdf               456                    Rojo                    Grande                123
+456+E56+8ju
asdf               456                    Rojo                    Mediano             123
+456+E56+md4
asdf               456                    Verde                 Grande                123
+456+4t6+8ju
asdf               456                    Verde                 Mediano             123
+456+4t6+8ju
234                456                    Rojo                    Grande                234
+456+E56+8ju
234                456                    Rojo                    Mediano             234
+456+E56+8ju
234                456                    Verde                 Grande                234
+456+E56+8ju
234                456                    Verde                 Mediano             234
+456+E56+8ju 
Básicamente es recorrer el array de forma que se mezclen todas las posibles combinaciones del contenido de [datos], pero contando con que tiene una cantidad variable de elementos.
A su vez se combinará los valores de referencia de cada combinación

Sinceramente, estoy bastante atascado en esto y no se me ocurre ninguna idea.