0

2 つの配列の違いを見つけて、3 つ目の配列に格納する必要があります。

これは私がこのためにしていることです

$newEmails=array_diff($Emails_1, $Emails_2);  

今問題は$Emails_1この形式です - >

  array(1) { [0] => string(20) "tester@xyz.com" }

$Emails_2この形式で提供されます ->

array(1) { [0] => array(1) { 'email' => string(20) "tester@xyz.com" } }

$Emails_2と同じ形式になるようにするには、どうすればよいですか$Emails_1

PS: 改ざん$Emails_1できず、変更のみ可能$Emails_2

4

3 に答える 3

0

比較する前にこれを行うことができます

$EmailTemp=$Emails_2[0]["email"];
$Emails_2=array();
$Emails_2[0]=$EmailTemp;
于 2013-03-27T17:34:03.627 に答える
0
$temp = array();
foreach($Emails_2 as $key => $value){
    $temp[$key] = $value['email'];
}
$Emails_2 = $temp;
于 2013-03-27T17:42:27.260 に答える
0
$Emails_1 is in this format -> array(1) { [0] => string(20) "tester@xyz.com" }

$Emails_2 comes in this format -> array(1) { [0] => array(1) { 'email' => string(20) "tester@xyz.com" } }

オプション 1: 最初に配列から文字列を削除しない理由

$email1 = $Emails_1[0];

$email2 = $Emails_2[0]['email'];

オプション 2: array_difference(..) を繰り返し、

function array_difference($currentEmails, $comingEmails)
{
    $newEmails = new Array();

    for ($comingEmails as $p)
    {
        if (!in_array($p['email'], $currentEmails))
        {
            $newEmails[]=$p['email'];
        }
    }

    return $newEmails;
}
于 2013-03-27T17:41:29.257 に答える