function func($sets)
{
if (!$sets) return [];
$first = array_shift($sets);
$count = count($sets);
for ($i = 0; $i < $count; $i++) {
$tmp = [];
if($i){
foreach ($first as $f) {
foreach ($sets[$i]['value'] as $set) {
$f[$sets[$i]['title']] = $set;
$tmp[] = $f;
}
}
}else{
foreach ($first['value'] as $f) {
foreach ($sets[$i]['value'] as $set) {
$tmp[] = [
$first['title'] => $f,
$sets[$i]['title']=> $set
];
}
}
}
$first = $tmp;
}
return $first;
}
$arr1 = [
[
"title"=>"颜色",
"value"=>["黑色", "白色"]
],
[
"title"=>"尺码",
"value"=>["S", "M","L"]
],
[
"title"=>"长度",
"value"=>["9分裤", "长裤"]
],
[
"title"=>"性别",
"value"=>["男", "女"]
]
];
$c = func($arr1);
print_r($c);
Array
(
[0] => Array
(
[颜色] => 黑色
[尺码] => S
[长度] => 9分裤
[性别] => 男
)
[1] => Array
(
[颜色] => 黑色
[尺码] => S
[长度] => 9分裤
[性别] => 女
)
[2] => Array
(
[颜色] => 黑色
[尺码] => S
[长度] => 长裤
[性别] => 男
)
[3] => Array
(
[颜色] => 黑色
[尺码] => S
[长度] => 长裤
[性别] => 女
)
[4] => Array
(
[颜色] => 黑色
[尺码] => M
[长度] => 9分裤
[性别] => 男
)
[5] => Array
(
[颜色] => 黑色
[尺码] => M
[长度] => 9分裤
[性别] => 女
)
[6] => Array
(
[颜色] => 黑色
[尺码] => M
[长度] => 长裤
[性别] => 男
)
.......
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…