- print_r: documentation ( source)
- floor: documentation ( source)
<?php
$option_array[] = [
'Condition' => [
'nm' => 'Near Mint/Mint',
'sp' => 'Slightly Played',
'hp' => 'Heavily PLayed'
],
'Style' => [
'normal' => 'Normal',
'foil' => 'Foil'
]
];
$N = 1;
foreach ($option_array as $options) $N *= count($options['options']);
$all_combinations = array();
for( $i = 0 ; $i < $N ; ++$i )
{
$all_combinations[$i] = array();
$q = $i;
for( $j = count($option_array)-1 ; 0 <= $j ; --$j )
{
$opt = $option_array[$j];
$nopts = count($opt['options']);
$all_combinations[$i][$opt['name']] = $opt['options'][$q % $nopts];
$q = floor($q / $nopts);
}
}
print_r( $all_combinations );