如何通过键而不是值来做 PHP array_intersect?

Posted

技术标签:

【中文标题】如何通过键而不是值来做 PHP array_intersect?【英文标题】:How to do PHP array_intersect by keys not by values? 【发布时间】:2016-01-11 12:12:48 【问题描述】:

$master = ['111' => 'foo', '124' => 'bar', '133' => 'baz'];

$check = ['111' => 14, '133' => 23 ]';

我想从$master 中删除所有在$check 中不存在的键。 所以这个例子的结果应该是:

$newMaster = ['111' => 'foo', '133' => 'baz'];

知道怎么做吗?提前致谢。

【问题讨论】:

array_intersect by keys array_intersect_key 部分欺骗:***.com/q/11644267/3933332(只是没有翻转第二个数组) @Rizier123 五个字符非常精确;-) @Havelock 我排除了空格,所以 by 和键中的 s = 3 ;) 【参考方案1】:

是的,只需使用array_intersect_key()

$newMaster = array_intersect_key($master, $check);

【讨论】:

【参考方案2】:

是的,您可以简单地使用:

var_dump(array_intersect_key($master, $check));

【讨论】:

【参考方案3】:
$master = ['111' => 'foo', '124' => 'bar', '133' => 'baz'];

$check = ['111' => 14, '133' => 23 ];


$intersectArray = array_intersect_key($master, $check);

这里的密钥将使用array_intersect_key() 函数进行比较,它将比较您在 $master 中的 $check 密钥,并为您提供 $master 中匹配的 $check 密钥的结果,并且您在 $intersectArray 中得到输出 ['111' => 'foo', '133' => 'baz'];

更多详情请查看此链接http://php.net/manual/en/function.array-intersect-key.php

【讨论】:

以上是关于如何通过键而不是值来做 PHP array_intersect?的主要内容,如果未能解决你的问题,请参考以下文章

在sqlite中插入时获取主键而不是rowID或通过其rowID获取主键

如何使用唯一键而不是主键在 Hibernate 中检索记录

使用软键盘上的“ENTER”键而不是单击按钮

如何配置 Debezium Mysql 连接器以生成原始键而不是 struct 或 json 对象?

应用程序本地化显示 iOS 中的键而不是值

获取值的键而不是获取键值? [复制]