-1

I'm trying to figure out how parse a multidimensional array/loop statement to lay out the iterated array values into rows (which will become a full row in a CSV file) The CSV file will end up with 24 rows based on below example

result

1999,apple,red

1999,apple,green

1999,orange,red

1999,orange,green

1999,strawberrry,red

... and so on

$year = array('1999','2000','2001','2002');
$fruit = array('apple','orange','strawberry');
$color = array('red','green');
mickmackusa
  • 43,625
  • 12
  • 83
  • 136
Dyluck
  • 125
  • 1
  • 11

1 Answers1

2

You can use a foreach() loop and iterate over each of the 3 arrays and use fputcsv() to save the 3 items into a CSV file.

$fp = fopen('file.csv', 'w');

$year = array('1999','2000','2001','2002');
$fruit = array('apple','orange','strawberry');
$color = array('red','green');

foreach ($year as $y) {
    foreach ($fruit as $f) {
        foreach($color as $c) {
            echo "$y,$f,$c" . PHP_EOL; // Echo to screen. Not needed
            fputcsv($fp,array($y,$f,$c)); // Save each row to CSV file
        }
    }
}
fclose($fp);

Resulting file.csv file will then look like so:

enter image description here

Bijan
  • 7,737
  • 18
  • 89
  • 149