Собственно вот:
Массив опций
Array
(
[0] => Цвет
[1] => Размер
[2] => Материал
)
Массив вариантов опций
Array
(
[0] => Array
(
[0] => Черный
[1] => Красный
)
[1] => Array
(
[0] => S
[1] => M
)
[2] => Array
(
[0] => Кожа
[1] => Кожзам
)
)
Вот функция
function fn_get_options_combinations($options, $variants)
{
$combinations = array();
$variant_number = reset(array_keys($options));
$option_id = $options[$variant_number];
unset($options[$variant_number]);
$sub_combinations = !empty($options) ? fn_get_options_combinations($options, $variants) : array();
if (!empty($variants[$variant_number])) {
foreach ($variants[$variant_number] as $variant) {
if (!empty($sub_combinations)) {
foreach ($sub_combinations as $sub_combination) {
$sub_combination[$option_id] = $variant;
$combinations[] = $sub_combination;
}
} else {
$combinations[] = array($option_id => $variant);
}
}
} else {
$combinations = $sub_combinations;
}
return $combinations;
}
комбинации на выходе
Array
(
[0] => Array
(
[Материал] => Кожа
[Размер] => S
[Цвет] => Черный
)
[1] => Array
(
[Материал] => Кожзам
[Размер] => S
[Цвет] => Черный
)
[2] => Array
(
[Материал] => Кожа
[Размер] => M
[Цвет] => Черный
)
[3] => Array
(
[Материал] => Кожзам
[Размер] => M
[Цвет] => Черный
)
[4] => Array
(
[Материал] => Кожа
[Размер] => S
[Цвет] => Красный
)
[5] => Array
(
[Материал] => Кожзам
[Размер] => S
[Цвет] => Красный
)
[6] => Array
(
[Материал] => Кожа
[Размер] => M
[Цвет] => Красный
)
[7] => Array
(
[Материал] => Кожзам
[Размер] => M
[Цвет] => Красный
)
)
Задача данной функции перечислить все возможные варианты опций что бы в дальнейшем присвоить каждой комбинации ценник, артикул и т.п.
_____________