2015-03-13 56 views
0

我在单个数组中有数组值,并且需要与主数组内的数组相交。如何获得阵列与单个阵列组相交

这里是我的代码:

$a[1] = array ('value' => 'America','value1' => 'England1','value2' => 'Australia','value3' => 'England','value4' => 'Canada',); 
$a[2] = array ('value' => 'America','value1' => 'Wales','value2' => 'Australia','value3' => 'England1','value4' => 'Canada',); 
$a[3] = array ('value' => 'America','value1' => 'England','value2' => 'Australia','value3' => 'England1','value4' => 'Canada',); 

我需要显示阵列中的交叉值。我需要的结果如下:

Array 
(
    [value] => America 
    [value1] => England1 
    [value2] => Australia 
    [value4] => Canada 
) 

我不能用这个数组与array_intersect()函数检查。因为数组键是动态进入的。

这只是一个例子。它如下所示:

$a[1],$a[2],$a[3].....$a[n] 

因此,请为此提出任何解决方案。

+0

不明白的结果。例如,你如何决定什么是重要的。 – 2015-03-13 11:51:18

回答

2

你可以用call_user_func_array做到这一点:

$result = call_user_func_array("array_intersect", $a); 
+0

它的工作..谢谢 – satheesh 2015-03-13 13:44:32

+0

我很高兴我可以帮助。如果解决了您的问题,请接受答案。 – msfoster 2015-03-13 14:08:28

1

它很容易使用array_intersect()如下

$a[1] = array ('value' => 'America','value1' => 'England1','value2' => 'Australia','value3' => 'England','value4' => 'Canada'); 
$a[2] = array ('value' => 'America','value1' => 'Wales','value2' => 'Australia','value3' => 'England1','value4' => 'Canada'); 
$a[3] = array ('value' => 'America','value1' => 'England','value2' => 'Australia','value3' => 'England1','value4' => 'Canada'); 

$c=count($a); 
$new=a[0]; 
for($i=0;$i<$c;$i++) 
{ 
    $new=array_intersect($new, $a[$i+1]); 
} 

print_r($new);