多维数组,元素排列组合
// 视频组合
public static function combination($data)
{
$data = array(
[1,2,3],
[6,7,8],
[10,11,12],
);
$length = count($data);
$newArr = self::arrExec($length,$data);
return $newArr;
}
public static function arrExec($length,$arr)
{
if ($length <= 2) { // 确定临界值
return self::arrCompose($arr[$length - 2], $arr[$length - 1]);
}
return self::arrCompose(self::arrExec($length - 1,$arr), $arr[$length - 1]);
}
// 两组数据组合
public static function arrCompose($arr1,$arr2)
{
$newArr = [];
foreach($arr1 as $key => $value){
foreach($arr2 as $k => $val){
$newArr[] = "{$value}{$val}";
}
}
return $newArr;
}
调用
$res = VideoService::combination($data);
returnSuccess('success',$res,count($res));
结果