如何获得两个数组的关键交集?

Posted

技术标签:

【中文标题】如何获得两个数组的关键交集?【英文标题】:How can I get the key intersect of two arrays? 【发布时间】:2015-07-23 13:11:00 【问题描述】:

我有两个数组,如图所示

//array 1
Array
(
    [0] => 223
    [1] => 216
)

/array 2
Array
(
    [221] => Bakers
    [220] => Construction
    [223] => Information Technology
    [216] => Jewellery
    [217] => Photography
    [222] => Retailers
)

我想要第一个数组的键(值)与第二个数组(键)匹配的文本。

预期结果:

Information Technology, Jewellery

【问题讨论】:

【参考方案1】:

只需获取键的array_intersect_key(),但由于您将键作为第一个数组中的值,因此您必须使用array_flip() 翻转它,例如

print_r(array_intersect_key($array2, array_flip($array1)));

【讨论】:

不错的一个。很干净,很到位。【参考方案2】:
$result = array();
foreach( $array1 as $index ) 
  $result[] = $array2[ $index ];

echo implode( ', ', $result );

【讨论】:

以上是关于如何获得两个数组的关键交集?的主要内容,如果未能解决你的问题,请参考以下文章

查找两个活动记录项数组之间的共同项

MFC-IntersectRect获得两个矩形的交集部分

如何使用 HTML5 Javascript Canvas 获得三个碰撞形状的交集并删除未碰撞的部分?

查找两个嵌套列表的交集?

如何求两个数组的交集??

如何在Java中获得两个n维数组的总和?