组合第二弹问题求助..

黄袍披身 2011-05-31 05:04:29
11 22 33
44 55 66
77 88 99

要得到

11 44 77
11 44 88
11 44 99
11 55 77
11 55 88
11 55 99
...
22 44 77
22 44 88
...
33 44 77
..

如此类推的函数...感冒了,脑子动不了了...感谢.
...全文
275 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ulpyuxa 2011-06-04
  • 打赏
  • 举报
回复
其实就是用几个循环就OK了。
wbandzlhgod 2011-05-31
  • 打赏
  • 举报
回复
哈哈哈 学习啦!!!

记住 ---- 笛卡儿积
一起混吧 2011-05-31
  • 打赏
  • 举报
回复

$arr1=array('11','22','33');
$arr2=array('44','55','66');
$arr3=array('77','88','99');
function get($arr1,$arr2,$arr3){
foreach($arr1 as $val){
foreach($arr2 as $val2){
foreach($arr3 as $val3){
$newarr[]=array($val,$val2,$val3);
}
}

}
foreach($newarr as $v){
$arr[]=join(' ',$v);
}
return $arr;
}
print_r(get($arr1,$arr2,$arr3));

Array
(
[0] => 11 44 77
[1] => 11 44 88
[2] => 11 44 99
[3] => 11 55 77
[4] => 11 55 88
[5] => 11 55 99
[6] => 11 66 77
[7] => 11 66 88
[8] => 11 66 99
[9] => 22 44 77
[10] => 22 44 88
[11] => 22 44 99
[12] => 22 55 77
[13] => 22 55 88
[14] => 22 55 99
[15] => 22 66 77
[16] => 22 66 88
[17] => 22 66 99
[18] => 33 44 77
[19] => 33 44 88
[20] => 33 44 99
[21] => 33 55 77
[22] => 33 55 88
[23] => 33 55 99
[24] => 33 66 77
[25] => 33 66 88
[26] => 33 66 99
)
黄袍披身 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xuzuning 的回复:]

这是一个求 笛卡尔积 的题目,比你第一问描述的清楚的多
PHP code
$a = array(11, 22, 33);
$b = array(44, 55, 66);
$c = array(77, 88, 99);


function Descartes($a, $b) {
$r = array();
if(is_array($a)) foreach($a as $v) $r =……
[/Quote]
小弟不才,受教了
xuzuning 2011-05-31
  • 打赏
  • 举报
回复
这是一个求 笛卡尔积 的题目,比你第一问描述的清楚的多
$a = array(11, 22, 33);
$b = array(44, 55, 66);
$c = array(77, 88, 99);


function Descartes($a, $b) {
$r = array();
if(is_array($a)) foreach($a as $v) $r = array_merge($r, Descartes($v, $b));
elseif(is_array($b)) foreach($b as $v) $r = array_merge($r, Descartes($a, $v));
else $r[] = "$a $b";
return $r;
}
print_r( Descartes( Descartes($a, $b), $c ) );

Array
(
[0] => 11 44 77
[1] => 11 44 88
[2] => 11 44 99
[3] => 11 55 77
[4] => 11 55 88
[5] => 11 55 99
[6] => 11 66 77
[7] => 11 66 88
[8] => 11 66 99
[9] => 22 44 77
[10] => 22 44 88
[11] => 22 44 99
[12] => 22 55 77
[13] => 22 55 88
[14] => 22 55 99
[15] => 22 66 77
[16] => 22 66 88
[17] => 22 66 99
[18] => 33 44 77
[19] => 33 44 88
[20] => 33 44 99
[21] => 33 55 77
[22] => 33 55 88
[23] => 33 55 99
[24] => 33 66 77
[25] => 33 66 88
[26] => 33 66 99
)

乌镇程序员 2011-05-31
  • 打赏
  • 举报
回复
$a = array(11,22,33);
$b = array(44,55,66);
$c = array(77,88,99);
$str = '';
echo "<pre>";
foreach($a as $v1) {
foreach($b as $v2) {
foreach($c as $v3) $str .= "{$v1} {$v2} {$v3}\n";
}
}
echo $str;
黄袍披身 2011-05-31
  • 打赏
  • 举报
回复
忘记了 我在写js程序 哈哈.一样php函数写出来我给修改一下。一样给分

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧