Время вложить несколько циклов foreach!
<?php
$array1 = array('rough', 'smooth', 'coarse');
$array2 = array('shiny', 'matte');
$array3 = array('very large', 'large', 'medium', 'small');
foreach($array1 as $i)
foreach($array2 as $j)
foreach($array3 as $k)
$output[] = "$i, $j, $k";
var_dump($output);
/* ouput
array
0 => string 'rough, shiny, very large' (length=24)
1 => string 'rough, shiny, large' (length=19)
2 => string 'rough, shiny, medium' (length=20)
3 => string 'rough, shiny, small' (length=19)
4 => string 'rough, matte, very large' (length=24)
5 => string 'rough, matte, large' (length=19)
6 => string 'rough, matte, medium' (length=20)
7 => string 'rough, matte, small' (length=19)
8 => string 'smooth, shiny, very large' (length=25)
9 => string 'smooth, shiny, large' (length=20)
10 => string 'smooth, shiny, medium' (length=21)
11 => string 'smooth, shiny, small' (length=20)
12 => string 'smooth, matte, very large' (length=25)
13 => string 'smooth, matte, large' (length=20)
14 => string 'smooth, matte, medium' (length=21)
15 => string 'smooth, matte, small' (length=20)
16 => string 'coarse, shiny, very large' (length=25)
17 => string 'coarse, shiny, large' (length=20)
18 => string 'coarse, shiny, medium' (length=21)
19 => string 'coarse, shiny, small' (length=20)
20 => string 'coarse, matte, very large' (length=25)
21 => string 'coarse, matte, large' (length=20)
22 => string 'coarse, matte, medium' (length=21)
23 => string 'coarse, matte, small' (length=20)
*/
?>