I have an array with this structure:
Array (
[0] => Array ( [key] => Egg Method [values] => Array (
[0] => Array ( [id] => 1 [value] => Boiled )
[1] => Array ( [id] => 2 [value] => Poached )
[2] => Array ( [id] => 3 [value] => Fried )
[3] => Array ( [id] => 4 [value] => Scrambled ) ) )
[1] => Array ( [key] => Bread [values] => Array (
[0] => Array ( [id] => 5 [value] => White )
[1] => Array ( [id] => 6 [value] => Brown ) ) )
[2] => Array ( [key] => Egg Hardness [values] => Array (
[0] => Array ( [id] => 7 [value] => Soft )
[1] => Array ( [id] => 7 [value] => Medium )
[2] => Array ( [id] => 8 [value] => Hard ) ) )
)
How could I iterate through the array to output all of the possible permutations, i.e.
Egg Method: Boiled / Bread: White / Egg Hardness: Soft
Egg Method: Boiled / Bread: White / Egg Hardness: Medium
Egg Method: Boiled / Bread: White / Egg Hardness: Hard
Egg Method: Boiled / Bread: Brown / Egg Hardness: Soft
Egg Method: Boiled / Bread: Brown / Egg Hardness: Medium
Egg Method: Boiled / Bread: Brown / Egg Hardness: Hard
Egg Method: Poached / Bread: White / Egg Hardness: Soft
Egg Method: Poached / Bread: White / Egg Hardness: Medium
Egg Method: Poached / Bread: White / Egg Hardness: Hard
Egg Method: Poached / Bread: Brown / Egg Hardness: Soft
Egg Method: Poached / Bread: Brown / Egg Hardness: Medium
Egg Method: Poached / Bread: Brown / Egg Hardness: Hard
etc etc
One additional problem is I don't know how many criteria arrays there might be, so unfortunately I can't just use 3 nested loops for this.
I am using PHP, although I guess a pseudo code solution will be fine and I can adapt it.