publicfunctiontest(){
$data=[
[1,2,3],
[4,5],
[6,7]
];
$list=[];
foreach($data[0]as$k=>$v){
foreach($data[1]as$kk=>$vv){
foreach($data[2]as$kkk=>$vvv){
$list[]=[$v,$vv,$vvv];
}
}
}
echo"<pre>";
print_r($list);
}用递归方式将示例改造,这样就可以无限制数组长度了
public$list=[];
publicfunctiontest(){
$data=[
[1,2,3],
[4,5],
[6,7]
];
echo"<pre>";
$this->arrayRecurse($data,0,[]);
print_r($this->list);exit;
}
privatefunctionarrayRecurse($data,$ii,$tmp){
for($i=0;$i<count($data[$ii]);$i++){
$j=$ii+1;
$tmp[$ii]=$i;
if($j<count($data)){
$this->arrayRecurse($data,$j,$tmp);
}
if($j==count($data)){
$t=[];
for($x=0;$x<count($data);$x++){
$t[]=$data[$x][$tmp[$x]];
}
if(!empty($t)){
$this->list[]=$t;
}
}
}
}
织梦号



