我目前正在为我使用的CMS开发一个开源电子商务系统。我目前正致力于产品变化。我在计算变体的每个可能选项时遇到问题。
阵列目前是这样的:
Array
(
[Size] => Array
(
[0] => Small
[1] => Medium
[2] => Large
)
[Colour] => Array
(
[0] => Blue
[1] => Red
[2] => Green
)
)
我希望它返回这样的内容:
Array
(
[0] => Size=Small, Colour=Blue
[1] => Size=Small, Colour=Red
[2] => Size=Small, Colour=Green
[3] => Size=Medium, Colour=Blue
[4] => Size=Medium, Colour=Red
[5] => Size=Medium, Colour=Green
[6] => Size=Large, Colour=Blue
[6] => Size=Large, Colour=Red
[8] => Size=Large, Colour=Green
)
我尝试了一些方法,但它开始绞尽脑汁。这也应该是可扩展的,例如Size=Large, Colour=Red, Material=Fabric
。
任何帮助将不胜感激。
答案 0 :(得分:0)
<?php
$array=array
(
'size' => Array
(
'Small',
'Medium',
'Large'
),
'Color' => Array
(
'Blue','Red','Green'
)
);
$arrayFirstKey=(array_keys($array)[0]);
$arraySecondKey=(array_keys($array)[1]);
$i=0;
$newArray=array();
foreach($array[$arrayFirstKey] as $size){
foreach($array[$arraySecondKey] as $color) {
$newArray[] = $arrayFirstKey.'=' . $size .','. $arraySecondKey.'=' . $color;
$i++;
}
}
echo "<pre>";
print_r($newArray);
输出是:
Array
(
[0] => size=Small, Colour=Blue
[1] => size=Small, Colour=Red
[2] => size=Small, Colour=Green
[3] => size=Medium, Colour=Blue
[4] => size=Medium, Colour=Red
[5] => size=Medium, Colour=Green
[6] => size=Large, Colour=Blue
[7] => size=Large, Colour=Red
[8] => size=Large, Colour=Green
)
编辑:
它创造了关键价值动态。我提供了您在注释中设置的示例的输出。唯一改变的是从代码功能中添加新值的数组。
Array
(
[0] => year=1992,Type=Champaign
[1] => year=1992,Type=Wine
[2] => year=1993,Type=Champaign
[3] => year=1993,Type=Wine
)