2013-02-08 22 views
1

我首先道歉,但我已经编写了大约8个小时今天完成这最后的事情。Php array_combine结合两个阵列与额外的设施

代码。

$a = array('a', 'c', 'b'); 

$c = array('a', 'c', 'b'); 

foreach(array_combine($a, $c) as $k => $v) { 
    echo $k.$v; 
} 

导致:aa, bb, cc

,但我想@

aa, ac, ab 
ba, bc, bb 
ca, cc, cb 
+0

'array(a,c,b);'甚至不是有效的语法。 – 2013-02-08 23:50:58

+0

我已经定义了它。是的,我创造了循环,得到像: a,aa,ab,ac,ba,bb,bc,ca,cb,cc,c。提醒我只需要双(aa/cc)而不是a或c或b。如果有单个输出,它可能是一个问题。 – user2056034 2013-02-09 00:11:11

+0

下面的嵌套循环回答不起作用吗?它不应该产生一个单一的值,只会增加一倍。 – lwitzel 2013-02-09 00:13:38

回答

0

我建议您使用foreach函数。不要使用array_combine()。

function cloop($a, $c) { 

$a = array('a', 'b', 'c'); 
$c = array('d', 'e', 'f'); 

foreach($a as $A){ 

    foreach($c as $B) { 

    $ab = $A.$B; 

    } 

} 

return $ab; 

} 
+0

它将返回ad af af bd be bf cd ce cf – Fujael 2013-02-10 11:51:03

4

如果你想所有排列,然后我不知道你想使用array_combine()。只需使用嵌套循环,如下所示:

$a = array('a', 'c', 'b'); 
$c = array('a', 'c', 'b'); 

foreach($a as $v1){ 
    foreach($c as $v2) { 
    echo $v1.$v2; 
    } 
}