如何通过键而不是值来做 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获取主键