2016-09-14 93 views
0

我有城市阵列这样PHP - 如何从多维数组中找到公共元素?

$city = array(
     array(1, 2, 3, 4), 
     array(1, 2, 3, 4, 5), 
     array(2, 3, 4, 5), 
    ); 

我想结果是这样的:

$resulted_array=array(2,3,4); 

我想,如果没有使用递归函数

+1

快得多HTTP ://stackoverflow.com/a/4704211/6797531 – CatalinB

+0

这种方式我没有得到期望的输出 –

+0

数组深度是无限的,对不对? – Exception

回答

0
$resulted_array = call_user_func_array('array_intersect',$city); 

Array 
(
    [1] => 2 
    [2] => 3 
    [3] => 4 
) 
0

这是工作示例我 -

<?php 

$arr = array(
     array(1, 2, 3, 4), 
     array(1, 2, 3, 4, 5), 
     array(2, 3, 4, 5), 
    ); 

$intersect = call_user_func_array('array_intersect', $arr); 
print_r($intersect); 
?> 

O/P

Array 
(
    [1] => 2 
    [2] => 3 
    [3] => 4 
) 

功能不是必需的。只有以上代码才能满足您的要求。

0

对于PHP 5.6及以上的,可以直接使用array_intersect()... token(在其他语言中也称为图示操作):

$city = array(
    array(1, 2, 3, 4), 
    array(1, 2, 3, 4, 5), 
    array(2, 3, 4, 5), 
); 

$inter = array_intersect(...$city); 

性能方面,这是比call_user_func_array()

相关问题