Recursive Array Exploding

Welcome to Programming Tutorial official website. Today - we are going to cover how to solve / find the solution of this error Recursive Array Exploding on this date .

I have string structured like

(cat,dog,fish) && (drinks) && (milk,water)

I need to convert to an array list like

cat drinks milk
cat drinks water
dog drinks milk
dog drinks water
fish drinks milk
fish drinks water

I’ve thought about doing it with a loop that takes each group and inserts them into an array like

0th pass: fill the array with the first row

(cat,dog,fish) && (drinks) && (milk,water)

1st pass: detect the first group and split it while removing the source

cat && (drinks) && (milk,water) 
dog && (drinks) && (milk,water) 
fish && (drinks) && (milk,water)

2nd pass ….

then loop this each time take the line split it add it to the end and remove the original.

Do you have a better idea? and in PHP?

For those who wonder It is part of sentence parsing code I’m writing.

Thanks

Answer

Once i needed to make every combination of similar sets. I had a recursive function which was actually very resource-intensive on big array (9 parts containing 5 items each) but i can try to adjust it for you:

$input=array(array("cat","dog","fish"),array("drinks"),array("milk","water"));
$output=array();
function combination($string,$level)
{
  global $output;
  global $input;
  if (isset($input[$level]))
  {
    $item=$input[$level];
    if (is_array($item))
    {
      foreach ($item as $i)     
        combination($string." ".$i,$level+1);
    }
    else
      combination($string." ".$item,$level+1);
  }
  else
    $output[]=$string;
}
combination("",0);
var_export($output);

However converting your string into input array is different problem, which i am not sure how to solve so i will keep it up to you.