2016-09-14 48 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()

相關問題