问题:现有一个数组 array(array(1,2,3),array(4,5)) 转换成 array(array(1,4),array(1,5),array(2,4),array(2,5),array(3,4),array(3,5))。原数组不仅限举例的那种,比如还有可能是 array(array(1,2),array(3,4),array(5,6)),甚至更多参数,结构是固定的。
如果只有举例的那个方法,那个数组,可以使用一种方法:
$arr = array(array(1,2,3),array(4,5));
list($a,$b) = $arr;
foreach($a as $key=>$val){
foreach($b as $k=>$v){
$rs[] = array($val,$v);
}
}
但是如果数组数量不固定的话,这种操作方法就不行了,只能寻求其他方法了。
下面是一种方法,暂时测试是通过,满足目前的需求
$str_array=array();
$array=array(array('a','b','c'),array('x','xx','m'),array('ms','cs','ds'),array('t','s','r'));
foreach($array as $arr){
if(is_array($arr)){
right_str($arr);
}
}
var_dump($str_array);
function right_str($arr){
global $str_array;
$do_array=$str_array;
$end_array=array();
foreach($arr as $onestr){
if(empty($do_array)){
$end_array[]=$onestr;
}else{
foreach($str_array as $str){
$end_array[]=$str."___".$onestr;
}
}
}
$str_array=$end_array;
}