您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 黄南分类信息网,免费分类信息发布

求大神帮忙,这个改怎么处理,php数组组合

2024/3/16 18:13:48发布30次查看
比如我有两个数组 
a组:10,11,12,13
b组:14,15
想组合成 10|14,11|14,12|14,13|14,10|15,11|15,12|15,13|15
拜谢了 可能会发生三组 四组 比如a组 b组 c组 d组
回复讨论(解决方案) 你这是在求笛卡尔积,精华区有好几个相关讨论
这里再给个版本 $a = array(10,11,12,13);$b = array(14,15);foreach(descartes($a, $b) as $v) $r[] = join(',', $v);echo join('|', $r);

10,14|10,15|11,14|11,15|12,14|12,15|13,14|13,15
function descartes($d) { if(func_num_args() > 1) $d = func_get_args(); $r = array_pop($d); while($d) { $t = array(); $s = array_pop($d); if(! is_array($s)) $s = array($s); foreach($s as $x) { foreach($r as $y) $t[] = array_merge(array($x), is_array($y) ? $y : array($y)); } $r = $t; } return $r; }

你这是在求笛卡尔积,精华区有好几个相关讨论
这里再给个版本 $a = array(10,11,12,13);$b = array(14,15);foreach(descartes($a, $b) as $v) $r[] = join(',', $v);echo join('|', $r);

10,14|10,15|11,14|11,15|12,14|12,15|13,14|13,15
function descartes($d) { if(func_num_args() > 1) $d = func_get_args(); $r = array_pop($d); while($d) { $t = array(); $s = array_pop($d); if(! is_array($s)) $s = array($s); foreach($s as $x) { foreach($r as $y) $t[] = array_merge(array($x), is_array($y) ? $y : array($y)); } $r = $t; } return $r; }

谢谢版主,我等会测试下,稍后我再发布个需求,等会您再帮我看看 http://bbs.csdn.net/topics/391860657 大神再帮我看看这个
黄南分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录