Php 匹配两个数组以从第二个数组中获取值

Php 匹配两个数组以从第二个数组中获取值,php,arrays,Php,Arrays,我有两个数组 $queue\u id和$subscriber\u results $queue\u id输出: Array ( [0] => 3 [1] => 4 [2] => 5 ) $subscriber\u结果输出: Array ( [0] => Array ( [id] => 3 [email] => test1@test.com [subscribed] => 1436264818 ) [1] => Array ( [id] =>

我有两个数组

$queue\u id
$subscriber\u results

$queue\u id
输出:

Array ( [0] => 3 [1] => 4 [2] => 5 ) 
$subscriber\u结果
输出:

Array ( [0] => Array ( [id] => 3 [email] => test1@test.com [subscribed] => 1436264818 ) [1] => Array ( [id] => 4 [email] => test2@test.com [subscribed] => 1436265909 ) [2] => Array ( [id] => 5 [email] => test3@test.com [subscribed] => 1436265919 ) ) 
我需要匹配这两个数组,以便从
$subscriber\u results
数组中获取
$queue\u id
数组中那些键的
电子邮件记录

我尝试使用array_keys(),但无法使其正常工作

有人能告诉我怎么做吗?

你可以用它来提取一个数组,其中id是数组索引(key),email是值。然后添加到队列ID列表,使值成为索引(键)


您可以使用in_数组进行此操作。尝试使用上面的代码

<?php
$matched=array();
foreach($subscriber_results as $key=>$val)
{
    if(in_array($val['id'],$queue_ids))
    {
        $matched[]=$val['email'];
    }

}
print_r($matched);
?>

您可以使用
array\u walk
作为

$result = array();
array_walk($subscriber_results,function($v,$k)use(&$result,$queue_ids){
    if(in_array($v['id'],$queue_ids)){
        $result[] = $v['email'];
    }
});

首先通过
数组过滤器()从
$queue\u id
获取
$subscriber\u结果中的所有匹配记录

然后,使用
array\u column()

现在,
$matches
将在
$queue\u id

你也可以用棍棒打它们

$matches = array_column(array_filter($subscriber_results, function($v) use ($queue_ids){
            return in_array($v['id'], $queue_ids);
        }), 'email');

谢谢,但我没有使用PHP5。
$matches = array_filter($subscriber_results, function($v) use ($queue_ids){
            return in_array($v['id'], $queue_ids);
        });
$matches = array_column($matches, 'email');
$matches = array_column(array_filter($subscriber_results, function($v) use ($queue_ids){
            return in_array($v['id'], $queue_ids);
        }), 'email');