我有城市陣列這樣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);
我想,如果沒有使用遞歸函數
我有城市陣列這樣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);
我想,如果沒有使用遞歸函數
$resulted_array = call_user_func_array('array_intersect',$city);
Array
(
[1] => 2
[2] => 3
[3] => 4
)
這是工作示例我 -
<?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
)
功能不是必需的。只有以上代碼才能滿足您的要求。
對於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()
快得多HTTP ://stackoverflow.com/a/4704211/6797531 – CatalinB
這種方式我沒有得到期望的輸出 –
數組深度是無限的,對不對? – Exception