2014-05-21 99 views
0

假设,我有一个数组如何通过组合两个相同的数组值来生成一个唯一的数组?

$array1 = array(10, 20); 

和相同的值的另一阵列如上

$array2 = array(10, 20); 

我想这两个数组结合起来,产生具有独特的键和值的对的数组。我想$array3输出是这样:

$array3 = array(10 => 20, 20 => 10) 

我试图洗牌第二阵列($array2),有时它给我作为第一个($array1)相同的值。而我$array3输出为:

$array3 = array(10 => 10, 20 => 20) 
+0

为什么'10 => 20,20 => 10'? –

+0

将始终只有两对键和值? –

+0

@nbin编号数组的值可以高达3或4。但是两个数组值总是相同的。我想用一对唯一的键和值来生成一个数组。没有关键和价值应该是相同的。 –

回答

1
array_combine($array1, array_reverse($array2)); 

这将实现你在你所提供的示例中指定的$array3,但一般不会工作,除非$array1$array2有相同数量的值。

我对你真正需要的东西有点困惑。你能提供更多键/值的例子吗?

+0

我有两个相同值的数组。 $ array1 = array(10,20,30,40,50); $ array2 = array(10,20,30,40,50); 两个数组将始终具有相同数量的值。我想要一个新的数组,新的数组键和值不应该是相同的。 –

+0

你的算法很好。然而,它在 $ array1 = array(10,20,30);失败。 $ array2 = array(10,20,30); –

+0

然后只要它们不相同,那么键和值对就不重要。呀? –

相关问题