PHP - 如何从多维数组中找到公共元素?
问题描述:
我有城市阵列这样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