Php 从其他两个阵列创建新阵列

Php 从其他两个阵列创建新阵列,php,Php,我有两个数组,其中包含用户详细信息,包括电子邮件地址。我想创建一个新的数组,该数组只包含出现在两个数组中的电子邮件的用户详细信息。有没有这样的功能 $firstArray = array( 0 => Array ( 'name' => 'ronen', 'email' => 'ronen$Experts.com' , 'contactID' => 43 ) , 1 => Array ( 'name' => 'shlo

我有两个数组,其中包含用户详细信息,包括电子邮件地址。我想创建一个新的数组,该数组只包含出现在两个数组中的电子邮件的用户详细信息。有没有这样的功能

$firstArray = array( 0 => Array ( 'name' => 'ronen',    'email' => 'ronen$Experts.com' ,    'contactID' => 43 ) ,
                1 => Array ( 'name' => 'shlomig' ,  'email' => 'shlomig$tours.co.il' ,'contactID' => 28 ) ,
                2 => Array ( 'name' => 'nathalie',  'email' => 'nathalie$obra.co.il',   'contactID' => 57 ) 

         );
$secondArray  = array(0 => Array ( 'name' => 'nathalie',    'email' => 'nathalie$obra.co.il',   'contactID' => 57 ) ,
                        1 => Array ('name' => 'roi' ,       'email' => 'roi$mail.com' ,'contactID' => 99 ) 
         );
我试着使用“数组\相交\关联”。不好

$newGroupsArray = array_intersect ($firstArray , $secondArray  );
例如,-在本例中,新数组中只应包含“nathalie”详细信息。 有没有这样的功能

$firstArray = array( 0 => Array ( 'name' => 'ronen',    'email' => 'ronen$Experts.com' ,    'contactID' => 43 ) ,
                1 => Array ( 'name' => 'shlomig' ,  'email' => 'shlomig$tours.co.il' ,'contactID' => 28 ) ,
                2 => Array ( 'name' => 'nathalie',  'email' => 'nathalie$obra.co.il',   'contactID' => 57 ) 

         );
$secondArray  = array(0 => Array ( 'name' => 'nathalie',    'email' => 'nathalie$obra.co.il',   'contactID' => 57 ) ,
                        1 => Array ('name' => 'roi' ,       'email' => 'roi$mail.com' ,'contactID' => 99 ) 
         );

您可以组合数组_值和数组_intersect_键以获得所需的结果

$Array1 = array();

$Array2 = array();

foreach ($firstArray as $value) 
{
    $Array1[$value['email']] = $value;
}   

foreach ($secondArray as $value) 
{
    $Array2[$value['email']] = $value;
}   

$matches = array_values(array_intersect_key($Array1, $Array2));

print_r($matches);
您还可以使用foreach循环,并使用if条件检查数据,如下所示

$matches = array();
foreach($firstArray as $key => $value)
{
    foreach($secondArray as $value1)
    {
        if($value['email'] === $value1['email'])
            $matches[] = $value;
    }   
}

print_r($matches);