PHP:如何将一个数组中的键与另一个数组中的值进行比较,并返回匹配项?

标签 php arrays compare array-difference array-intersect

我有以下两个数组:

$array_one = array('colorZero'=>'black', 'colorOne'=>'red', 'colorTwo'=>'green', 'colorThree'=>'blue', 'colorFour'=>'purple', 'colorFive'=>'golden');

$array_two = array('colorOne', 'colorTwo', 'colorThree');

我想要一个来自 $array_one 的数组,它只包含其键是 $array_two 成员的键值对(通过创建一个新数组或删除其余的$array_one)

中的元素

我该怎么做?

我查看了 array_diffarray_intersect,但它们将值与值进行比较,而不是将一个数组的值与另一个数组的键进行比较。

最佳答案

从 PHP 5.1 开始,有 array_intersect_key ( manual )。

只需使用 array_flip() 将第二个数组从 key=>value 翻转到 value=>key,然后比较键。

因此,为了比较 OP 的数组,可以这样做:

$result = array_intersect_key( $array_one , array_flip( $array_two ) );

根本不需要任何循环数组。

关于PHP:如何将一个数组中的键与另一个数组中的值进行比较,并返回匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25472252/

相关文章:

javascript - 删除按钮在 CodeIgniter 中不起作用

php - 向 Google Cloud PHPMyAdmin 服务器发送 REST 调用不起作用?

java - 你怎么能比较android中的字符串大于

java - 如何编辑我的比较方法

php - 无法使用 php 和 angular2 一次插入多条记录

JavaScript "associative"数组访问

php - 将 SimpleXMLElement 对象转换为数组

javascript - 检查一个元素是否存在于对象数组中

delphi - delphi中捕获变量溢出

php - 放入数据库的图像信息(名称、类型、大小、url)