Php 按键数组筛选数组
可能重复: PHP是否有用于此用途的内置函数 我有两个数组,第一个与一些数据关联。例如:Php 按键数组筛选数组,php,arrays,filtering,Php,Arrays,Filtering,可能重复: PHP是否有用于此用途的内置函数 我有两个数组,第一个与一些数据关联。例如: $data = array( 'name' => 'John', 'last_name' => 'Smith', 'address' => 'NY, ...', 'phone' => '1234567' ); 和另一个带有键的数组: $keys = array( 'name', 'last_name' );
$data = array(
'name' => 'John',
'last_name' => 'Smith',
'address' => 'NY, ...',
'phone' => '1234567'
);
和另一个带有键的数组:
$keys = array(
'name',
'last_name'
);
应用此函数后,我只从第一个数组中获取值,其中包含来自第二个数组的键
$result = function($data, $keys);
print_r($result);
// array(
// 'name' => 'Jonh',
// 'last_name' => 'Smith'
// )
请尝试以下方法:
$result = array_intersect_key($data, array_fill_keys($keys, null));
更多副本请在提问之前使用搜索功能,就像您在中被要求做的那样。谢谢你评论你的代码,解释你为什么提出这个建议snippet@Yaroslav我提出这个片段是因为它打印出所需的数组,从而解决了这个问题。这不是StackOverflow吗?为什么投反对票?我错过了什么吗?Steffen,是的,编码也是如此,有些代码总比什么都没有好。但是如果你评论你的代码,它将对OP或任何其他未来的访问者更加有用,他们将对它有更好的理解。检查此项以及如何给出正确答案。至于否决票,它是匿名的,所以我不能告诉你谁否决了,但肯定不是我的@雅罗斯拉夫:是的,为了让我的评论像被接受和投票的答案一样完整,我应该添加一个“尝试下面的代码”来确保,读者知道这不是“不要尝试下面的内容”或者忽略这篇文章,里面没有答案。你提到的那篇文章说代码是王道——但是,确保它是编译的,没有解释的代码很少有用。我的是可运行的。由于OP只要求提供一个具体功能的名称,我实际上认为这里的评论可以忽略不计。不同的意见。我觉得很悲哀,当正确的答案不被尊重而被贬低的时候。我不能尝试代码,我不是一个php开发人员,所以我不能向上投票反对你已经有的向下投票,因为我不知道你的代码是否编译。如果你有一些评论,例如,我可以更好地理解你在做什么,以及你是如何做的,然后我可以想好,我不能尝试代码,但推理是正确的,让我投票吧。最后但并非最不重要。是的,接受的答案只有一个尝试下面。那么你就不发表评论了?就因为别人不评论?
$data = array(
'name' => 'John',
'last_name' => 'Smith',
'address' => 'NY, ...',
'phone' => '1234567'
);
$keys = array('name', 'last_name');
print_r(array_intersect_key($data, array_flip($keys)));