数组遍历操作问题

问题:现有一个数组  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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值